$combined =~ s/[^\x00].*//;
I tried to print the variable with</code>
print "\$combined=",unpack("H*",$combined)," ($combined)\n";
</code> and was really surprised:¢¼combined=0c0d060a183672756e33 (”Ļ
”č6run3)
$combined=0a183672756e33 (
”č6run3)
Prefix is "model4r"
(I'd be even more surprised if this went through correctly.)
Guess what was the problem ... well the .* did not match everything. I forgot that without /s dot doesn't match newlines. So the fix is very simple ...
$combined =~ s/[^\x00].*//s;
...
Actually thinking about this it would probably be better to change the last three lines to:$combined =~ /^(\x00*)/;
my $prefix = substr($first, 0, length($1));
print qq{Prefix is "$prefix"};
I should have tested my code better :-(
Jenda
Always code as if the guy who ends up maintaining your code
will be a violent psychopath who knows where you live.
-- Rick Osborne
Edit by castaway: Closed small tag in signature |