Wenn man sich die <!--pod_f1--><a href="//perldoc.perl.org/functions/split.html" target="_blank"><img alt="perldoc " src="/iB_html/non-cgi/Skin/SKIN-3/images/perldoc.gif" border="0"> <!--pod_f2-->perldoc zu split<!--pod_f3--></a><!--pod_f4--> anschaut, dann sieht man, dass der erste Parameter ein regulärer Ausdruck ist. Dein
split "." entspricht als eigentlich dem
split /./. Und der Punkt steht in Regulären Ausdrücken für ein "beliebiges Zeichen". Und bei
split werden die Trennzeichen nicht behalten, außer man sagt es explizit durch Klammerung. Was bei Deinem Ausdruck passiert, wird also deutlich wenn Du folgendes machst:
use Data::Dumper;
my @array = split "(.)" , $work[3];
print Dumper \@array;
Um an einem literalen Punkt, also dem Zeichen '.' zu splitten, musst Du das im Regulären Ausdruck escapen. Deswegen das
\. Damit das ganze Übersichtlicher wird, packen wir das gleich in
//. So erkennt man auch gleich, dass es sich um einen Regulären Ausdruck handelt.
Wenn Du es mit der String-Variante machen möchtest, müsstest Du
split "\\." , $work[3]; schreiben.