in reply to cut of first char of a string

Some variations on four themes: substr($s, 0, 1, ""), $s =~ s/.//s;, and use of split and unpack.
$s = (split /./s, $s, 2)[1] err ""; # Needs 'defined-or' patch, or 5.9 +.1 $s = (split /./s, $s, 2)[1]; $s = "" unless defined $s; $s = length $s ? (split /./s, $s, 2)[1] : ""; $s = join "", map {substr $s, $_, 1} grep {$_} 0 .. length($s)-1; substr $s, $_, 1, $_ ? substr($s, $_, 1) : "" for 0 .. length($s)-1; local $a = 0; $s = join "", grep {$a++} split //, $s; local $" = ""; $s = "@{[(split //, $s)[1 .. length($s)-1]]} $s =~ s/(?<!.).//sg; local $a; $s =~ s/.(??{$a++ ? "(?!)" : "(?=)"})//sg; $s = pack "A*", (unpack "A*", $s)[1 .. length($s)-1]; $s = pack "A*", unpack "xA*", $s if length $s; $s = pack "A*", unpack "xA@{[length($s)-1]}", $s if length $s;