Struppi: Speicher problem mit perl

Beitrag lesen

$var_test_sm = "1|212|asdfads|asdfasdf||||||sydfas|asdf||||||||||";
@liste_test_sm= split(/|/, $var_test_sm);
print scalar(@liste_test_sm);
exit;

Du arbeitest nicht mit strict?
Solltest du aber, damit lassen sich viele Fehler vermeiden bzw. leichter finden.

ich habe einen string mit 20 | (pips) wenn ich nun den split mache
auf | bekomme ich nur ein liste mit 11 inhalten zurück der rest geht verloren. dies war früher nicht so bei perl. kann man das irgendwie in der perl version 5.8.4 steuern?

Ich hab hier Perl 5.6.0 und bekomme mit deinem obigen Code ebenfalls 11

offensichtlich wird eine leere Liste nicht gesplitet, das einzige was mir einfällt, ist das du noch ein Element mit einem Inhalt anhängst.

my $var_test_sm = "1|212|asdfads|asdfasdf||||||sydfas|asdf||||||||||";  
$var_test_sm .= '1';  
@liste_test_sm = split(/\|/, $var_test_sm);  
pop @liste_test_sm;  
print scalar(@liste_test_sm);

Struppi.