Wikipedia:Reference desk/Archives/Computing/2021 March 17
Appearance
Computing desk | ||
---|---|---|
< March 16 | << Feb | March | Apr >> | March 18 > |
Welcome to the Wikipedia Computing Reference Desk Archives |
---|
The page you are currently viewing is a transcluded archive page. While you can leave answers for any questions shown below, please ask new questions on one of the current reference desk pages. |
March 17
[edit]Perl character extraction
[edit]Is there a neater way in perl of grabbing the "nth" character from a string and then removing it from the string?
The following "works", but it doesn't feel very perl-ish to me. Is there a better way? (All characters in strin are different.)
my $ch = substr( $strin, $n, 1 ) ; # Grab character n (my $strout = $strin) =~ s/$ch// ; # Remove ch from strout
-- SGBailey (talk) 08:35, 17 March 2021 (UTC)
- I'm no expert, but I would use the substr function, with the replacement parameter. I think it is easier to understand than regexp. I have an idea it is faster too (not that this makes any difference unless you are processing large numbers of strings). --TrogWoolley (talk) 13:01, 17 March 2021 (UTC)
- Thank you - that works nicely
my $strin = "abcdef" ; my $n = 3; my $ch = substr( ($strout = $strin), $n, 1, ) ; # Grab character n print "$strin $strout $ch\n" ; =result abcdef abcef d Press any key to continue . . . =cut
-- SGBailey (talk) 14:20, 17 March 2021 (UTC)
- You can also use substr on the left side of an assignment statement to remove a character:
substr($str,$n,1) = "";