PoorLuzer has asked for the wisdom of the Perl Monks concerning the following question:
use strict; use warnings; use Data::Dumper; use Tie::File; # open the file if it exists, but fail if it does not use Fcntl 'O_RDWR'; our @array = (); our $file = 'taste'; tie @array, 'Tie::File', $file, mode => O_RDWR or die $!; our $SearchString = 'HAI WORLD Times ([0-9]+).*$'; #our $ReplaceString = "\t\t<exML LOLZ = \"" . unpack('a1', $1) . '"/>' +; # we could use such a statement ONLY if we figured out what somethi +ng() would be my $elementIdx = 0; while($elementIdx <= $#array) { if($array[$elementIdx] =~ $SearchString) { # Maintain only the first character #$array[$elementIdx] = unpack ('a' . (1 + length("\t\t<exML LO +LZ = \"\"/>")), something($ReplaceString)); # I would love to know wh +at something() could be so that I can separate the configuration from + the logic $array[$elementIdx++] = "\t\t<exML LOLZ = \"" . unpack('a1', $ +1) . '"/>'; #++$elementIdx; } else { splice @array, $elementIdx, 1; # we don't want this in the output } } untie @array; # all done!
HAI WORLD Times 0 HAI WORLD Times 1 HAI WORLD Times 2 HAI WORLD Times 3 HAI WORLD Times 4 HAI WORLD Times 5 HAI WORLD Times 6 HAI WORLD Times 7 HAI WORLD Times 8 HAI WORLD Times 9 HAI WORLD Times 10 HAI WORLD Times 11 HAI WORLD Times 12 HAI WORLD Times 13 HAI WORLD Times 14 HAI WORLD Times 15 HAI WORLD Times 16 HAI WORLD Times 17 HAI WORLD Times 18 HAI WORLD Times 19 HAI WORLD Times 20 HAI WORLD Times 21 HAI WORLD Times 22 HAI WORLD Times 23 HAI WORLD Times 24 HAI WORLD Times 25
<exML LOLZ = "0"/> <exML LOLZ = "1"/> <exML LOLZ = "2"/> <exML LOLZ = "3"/> <exML LOLZ = "4"/> <exML LOLZ = "5"/> <exML LOLZ = "6"/> <exML LOLZ = "7"/> <exML LOLZ = "8"/> <exML LOLZ = "9"/> <exML LOLZ = "1"/> <exML LOLZ = "1"/> <exML LOLZ = "1"/> <exML LOLZ = "1"/> <exML LOLZ = "1"/> <exML LOLZ = "1"/> <exML LOLZ = "1"/> <exML LOLZ = "1"/> <exML LOLZ = "1"/> <exML LOLZ = "1"/> <exML LOLZ = "2"/> <exML LOLZ = "2"/> <exML LOLZ = "2"/> <exML LOLZ = "2"/> <exML LOLZ = "2"/> <exML LOLZ = "2"/>
|
|---|