Loading ...
Sorry, an error occurred while loading the content.

Re: [PBML] Perl Problem

Expand Messages
  • Rob Richardson
    Ladies, gentlemen and others (of whom I hope we don t have too many), Please keep discussions civil. It is possible to suggest to others that their posts
    Message 1 of 11 , Jul 19, 2010
    • 0 Attachment
      Ladies, gentlemen and others (of whom I hope we don't have too many),

      Please keep discussions civil. It is possible to suggest to others
      that their posts might be more easily understood if they are written
      in correct English without insulting them.

      Rob Richardson
      Moderator, perl-beginner@yahoogroups.com
    • Kenneth Wolcott
      Hi; Here s my request: Please do not use phonetic shorthand English that is popular during cell phone texting if you want me to read and (hopefully) respond to
      Message 2 of 11 , Jul 19, 2010
      • 0 Attachment
        Hi;

        Here's my request:

        Please do not use phonetic shorthand English that is popular during cell
        phone texting if you want me to read and (hopefully) respond to your
        posting.

        Thanks,
        Ken Wolcott

        On Mon, Jul 19, 2010 at 14:52, Rob Richardson <CedricCicada@...>wrote:

        >
        >
        > Ladies, gentlemen and others (of whom I hope we don't have too many),
        >
        > Please keep discussions civil. It is possible to suggest to others
        > that their posts might be more easily understood if they are written
        > in correct English without insulting them.
        >
        > Rob Richardson
        > Moderator, perl-beginner@yahoogroups.com <perl-beginner%40yahoogroups.com>
        >
        >


        [Non-text portions of this message have been removed]
      • merlyn@stonehenge.com
        ... Kenneth Please do not use phonetic shorthand English that is popular during cell Kenneth phone texting if you want me to read and (hopefully) respond
        Message 3 of 11 , Jul 19, 2010
        • 0 Attachment
          >>>>> "Kenneth" == Kenneth Wolcott <kennethwolcott@...> writes:

          Kenneth> Please do not use phonetic shorthand English that is popular during cell
          Kenneth> phone texting if you want me to read and (hopefully) respond to your
          Kenneth> posting.

          Seconded.

          As I say on IRC,

          "if you're paying for IRC by the character, sucks to be u". :)

          --
          Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
          <merlyn@...> <URL:http://www.stonehenge.com/merlyn/>
          Smalltalk/Perl/Unix consulting, Technical writing, Comedy, etc. etc.
          See http://methodsandmessages.vox.com/ for Smalltalk and Seaside discussion
        • andy_bach@wiwb.uscourts.gov
          Another usage note Perl Problem isn t much of a subject line - er, what *else* would you be writing to the list with? ;- perl -00lne push @{ $h{ $1 } },
          Message 4 of 11 , Jul 20, 2010
          • 0 Attachment
            Another usage note "Perl Problem" isn't much of a subject line - er, what
            *else* would you be writing to the list with? ;->


            perl -00lne '
            push @{ $h{ $1 } }, $_ if /of ([0-9]+) bytes/m;
            }
            {
            print for map @{ $h{ $_ } }, sort { $b <=> $a } keys %h;' /tmp/h.dat

            -00 is used to set perl to 'slurp' in paragraph mode (see perldoc perlrun
            -0 (that's zero) option). -l is to add newlines to print stmts. -n is is
            in auto-while loop and -e is to mark the script. Those unmatched curlies
            are a trick to get an loop and END block - because -n takes your code and
            wraps it in while loop
            while (<>) {
            <-e code>
            }

            adding a close then open curly, in the middle of your code make it:
            while (<>) {
            <-e code up to close curly>
            }
            {
            <-e code after curlies>

            push @{ $h{ $1 } }, $_ if /of ([0-9]+) bytes/m;

            finds the digits before the word "bytes", uses it as a hash key for %h,
            which is then treated as an anonymous array and the whole line saved
            therein <ahem> (that sentence is as convoluted as this code - sorry ;-).
            The "m" flag isn't needed (?) as there's no "." in the RE, I believe. I
            don't recall the data set but they may have meant/needed to use "\s+" for
            the whitespace (if the data were wrapping on lines, say).

            print for map @{ $h{ $_ } }, sort { $b <=> $a } keys %h;' /tmp/h.dat

            after the data's been processed, we fetch back that # of bytes key, sort
            them reverse numerically ("$b" before "$a") and print each line of the
            anonymous array for that key.

            #!/usr/bin/perl -00l
            use strict;
            use warnings;
            my %data_lines;
            while (<>) {
            next unless /of (\d+) bytes/;
            push @{ $data_lines{$1} }, $_;
            # warn("adding $1 - $_");
            }
            foreach my $key ( sort { $b <=> $a } keys %data_lines ) {
            print "Bytes: $key";
            foreach my $line ( @{ $data_lines{$key} } ) {
            # whatever you want, line by line now
            print "\tdata: $line";
            } # foreach line
            } # foreach key


            a

            ----------------------
            Andy Bach
            Systems Mangler
            Internet: andy_bach@...
            Voice: (608) 261-5738;
            Cell: (608) 658-1890

            "Every time I see an adult on a bicycle, I no longer despair for the
            future of
            the human race."
            H. G. Wells, 1904

            [Non-text portions of this message have been removed]
          Your message has been successfully submitted and would be delivered to recipients shortly.