Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

Answer: How do I pull n characters off the front of a string?

by davido (Archbishop)
on Oct 03, 2003 at 01:31 UTC ( #296137=categorized answer: print w/replies, xml ) Need Help??

Q&A > strings > How do I pull n characters off the front of a string? - Answer contributed by davido

The other examples all handed off the first $n characters. But they didn't remove those first $n characters from the original $string, as the question required.

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
    ($chars, $string) = unpack "a$n a*", $string;
    The four parameter substr is clearly the cleanest solution though.

    Makeshifts last the longest.

Log In?

What's my password?
Create A New User
[stevieb]: my RPi::WiringPi now fully supports: GPIO, LCDs, digital potentiometers, analog to digital converters, shift registers, barometric pressure sensor, direct access to SPI bus, and ability for more :)
[stevieb]: ...just need to perform many tests and POD review this week, then I'm going to put together some real projects and post about them

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (5)
As of 2017-01-22 22:45 GMT
Find Nodes?
    Voting Booth?
    Do you watch meteor showers?

    Results (190 votes). Check out past polls.