Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • > Do NOT use it on large files when doing multiple replacements of file contents, do copying of content instead.

    Given Tie::File's original purpose I'd say that what you describe above sounds almost like a bug. I say 'almost' since you didn't really explain what was the problem...

    • Ok, this is the script:
      #!/usr/bin/perl -w
       
      use strict;
      use Tie::File;
       
      my @array;
      tie @array, 'Tie::File', $ARGV[0] or die "Unable to tie file: $ARGV[0] - $!";
      foreach(@array) {
              print STDERR "Processing: $_\n";
              if (m/^<Seg L=/) {
                      s/"?,\s*$//;
                      s/>"/>/;
                      print STDERR "Processed: $_\n";
              }
      }
      untie(@array);
       
      exit(0);
      I need to proces a lot of line, which look like this:
      <Seg L=EN-GB>"China PR",
      Resulting in this:
      <Seg L=EN-GB>China PR
      The file in about 5 megabytes in size... and a rough estimate says 1000 lines in 5 minutes and I have 127381 lines...
      • Firstly, you could redo this

               if (m/^<Seg L=/) {
                        s/"?,\s*$//;
                        s/>"/>/;
                        print STDERR "Processed: $_\n";
               }

        as

               s/^(<Seg L=.+>)"(.+)",\s*$/$1$2/ && print ...

        to replace one m and two s's with one s.

        Secondly, doing at least one STDERR print for eve

        • Thanks for the advice,

          I think I will attemp to time the various versions.

          I will profile the script aswell,

          Again thanks :)