Einzelnen Beitrag anzeigen
Ungelesen 01.11.14, 10:52   #4
pfefferschnitzel
Anfänger
 
Registriert seit: Jul 2014
Beiträge: 3
Bedankt: 0
pfefferschnitzel ist noch neu hier! | 3 Respekt Punkte
Standard

Vorwort: damit auch Strings ungerader Länge verarbeitet werden können, wird in meiner Lösung einfach die Hälfte der String-Länge auf die nächste Ganzzahl aufgerundet. Ist also je nach Anwendungsfall nicht ganz sauber.

In Perl gibt es bekanntlich viele Wege, um etwas zu erreichen. Im Folgenden mittels regulärem Ausdruck und alternativ "unpack":

Code:
use POSIX; # für Aufrunden via ceil

my $string = "foobar123";
my $len = ceil(length($string)/2);

my @splitted_by_regex = $string =~ m/(.{1,$len})/g;
my @splitted_by_unpack = unpack("a$len a$len", $string);

use Data::Dumper;
print Dumper(\@splitted_by_regex);
print Dumper(\@splitted_by_unpack);
Ausgabe:
Code:
$VAR1 = [
          'fooba',
          'r123'
        ];
$VAR1 = [
          'fooba',
          'r123'
        ];
pfefferschnitzel ist offline   Mit Zitat antworten