Hello tkguifan,
For your particular problem, substr is the best solution, as others have shown. However, you might find it useful to see how your original approach can be made to work. The missing piece of the puzzle is splice:
#! perl use strict; use warnings; while (<DATA>) { my @f = split /\s+/; my $s = insert_string(@f); printf "%9s: %s\n", $f[0], $s; } sub insert_string { my ($string, $pos, $insert) = @_; my @chars = split //, $string; splice @chars, $pos, 0, $insert; return join '', @chars; } __DATA__ advark 1 a aaacccddd 3 bbb xyz 3 w qrst 0 p
Output:
2:23 >perl 1144_SoPW.pl advark: aadvark aaacccddd: aaabbbcccddd xyz: xyzw qrst: pqrst 2:23 >
Hope that helps,
| Athanasius <°(((>< contra mundum | Iustus alius egestas vitae, eros Piratica, |
In reply to Re: Can you set a character in a string at a given index directly?
by Athanasius
in thread Can you set a character in a string at a given index directly?
by tkguifan
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |