⭐ in reply to How do I pull n characters off the front of a string?
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;
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Answer: How do I pull n characters off the front of a string?
by Aristotle (Chancellor) on Oct 03, 2003 at 22:31 UTC |