As always, there is more than one way to do it. For each of the examples below, assume the following setup:
my $string = "1234567890abcdefghijABCDEFGHIJK"; my $chars; my $n = 2;
With substr:
$chars = substr( $string, 0, $n ); substr( $string, 0, $n ) = "";
Another with substr:
( $chars, $string ) = ( substr($string,0,$n), substr($string,$n) );
And probaby the best substr solution:
$chars = substr ($string, 0, $n, "");
With a substitution s/// regexp:
$string = s/^(.{$n})(.*)$/$2/s; $chars = $1;
With split:
($chars, $string) = split /^(.{$n})/, $string, 1;
With a pattern match (m//):
($chars, $string) = $string =~ /^(.{$n})(.*)$/s;
With unpack (Not for the faint of heart):
( $chars, $string ) = unpack "a$n a@{[length($string)-$n]}", $string;
In reply to Re: How do I pull n characters off the front of a string?
by davido
in thread How do I pull n characters off the front of a string?
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |