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

RE: [PBML] Newbie question

Expand Messages
  • Kevin Patterson
    I fixed it. #!/usr/bin/perl #use warnings; #use diagnostics; my $count = 0; @client = qw(apples oranges pears kiwi); $Input_File= crapdata1.txt ; open(INP,
    Message 1 of 29 , Jun 17, 2009
    • 0 Attachment
      I fixed it.





      #!/usr/bin/perl



      #use warnings;

      #use diagnostics;



      my $count = 0;



      @client = qw(apples oranges pears kiwi);



      $Input_File="crapdata1.txt";

      open(INP, $Input_File);

      @by_jobname=<INP>;

      close(INP);



      foreach $Client_Key (@client)

      {

      foreach $New_Jobname (@by_jobname)

      {

      $em_job = substr($New_Jobname,11,50);

      $em_key = substr($New_Jobname,11,2);



      if ($em_key eq $Client_Key)

      {

      $count = $count + 1;

      }



      }

      print "$Client_Key count is: $count\n";

      $count = 0;

      }





      exit;



      From: perl-beginner@yahoogroups.com [mailto:perl-beginner@yahoogroups.com]
      On Behalf Of Kevin Patterson
      Sent: Wednesday, June 17, 2009 1:18 PM
      To: perl-beginner@yahoogroups.com
      Subject: RE: [PBML] Newbie question








      Sorry...

      Here is what I wrote:

      #!/usr/bin/perl

      #use warnings;
      #use diagnostics;

      my $count = 0;
      my $key_count = 0;
      $Input_File="crapdata1.txt";
      open(INP, $Input_File);
      @by_jobname=<INP>;
      close(INP);

      foreach $New_Jobname (@by_jobname)
      {
      $em_job = substr($New_Jobname,11,50);
      $em_key = substr($New_Jobname,11,2);

      if ($em_key eq "Apples")
      {
      $count[1] = $count[1] + 1;
      }

      }

      print "$em_key count is: $count[1]\n";

      my $count = 0;
      foreach $New_Jobname (@by_jobname)
      {
      $em_job = substr($New_Jobname,11,50);
      $em_key = substr($New_Jobname,11,2);

      if ($em_key eq "Oranges")
      {
      $count[2] = $count[2] + 1;
      }

      }
      print "$em_key count is: $count[2]\n";
      exit;

      It give me the following results:

      Apple Count is: 2
      Oranges Count is: 1

      Here is the data.

      Apples |Sweet
      Oranges |Seeds
      Apples |Sour

      -----Original Message-----
      From: perl-beginner@yahoogroups.com <mailto:perl-beginner%40yahoogroups.com>
      [mailto:perl-beginner@yahoogroups.com
      <mailto:perl-beginner%40yahoogroups.com> ]
      On Behalf Of Scot Robnett
      Sent: Wednesday, June 17, 2009 12:22 PM
      To: perl-beginner@yahoogroups.com <mailto:perl-beginner%40yahoogroups.com>
      Subject: RE: [PBML] Newbie question

      What is the exact format of the file?

      What have you tried so far?

      Nobody is going to write the script for you. The group is here to help
      you figure things out when you get stuck or something isn't working, but
      you're supposed to try something first.



      -----Original Message-----
      From: perl-beginner@yahoogroups.com <mailto:perl-beginner%40yahoogroups.com>

      [mailto:perl-beginner@yahoogroups.com
      <mailto:perl-beginner%40yahoogroups.com> ] On Behalf Of Kevin Patterson
      Sent: Wednesday, June 17, 2009 2:11 PM
      To: perl-beginner@yahoogroups.com <mailto:perl-beginner%40yahoogroups.com>
      Subject: [PBML] Newbie question


      Hello..

      I am writing a perl program in windows..

      Here is my problem.

      I have a file containing data such as:

      Apples

      Oranges

      Pears

      Bananas

      Plums

      Apples

      Oranges

      Pears

      bananas

      kiwi

      Apples

      Oranges

      Pears

      bananas

      I write a program to read this file and create a summary report showing

      How many apples:

      How many oranges

      How many Pears

      Can anyone help me??

      thanks

      [Non-text portions of this message have been removed]

      No virus found in this incoming message.
      Checked by AVG - www.avg.com
      Version: 8.5.374 / Virus Database: 270.12.73/2180 - Release Date:
      06/17/09 05:53:00

      No virus found in this outgoing message.
      Checked by AVG - www.avg.com
      Version: 8.5.374 / Virus Database: 270.12.73/2180 - Release Date:
      06/17/09 05:53:00

      [Non-text portions of this message have been removed]

      ------------------------------------

      Unsubscribing info is here:
      http://help.yahoo.com/help/us/groups/groups-32.htmlYahoo! Groups Links





      [Non-text portions of this message have been removed]
    • Jeff Soules
      You ve had prior experience with other programming languages, right? Using substr() this way is a very C or Java way of doing things. Read up on hashes
      Message 2 of 29 , Jun 17, 2009
      • 0 Attachment
        You've had prior experience with other programming languages, right?
        Using substr() this way is a very C or Java way of doing things.

        Read up on hashes ("associative arrays") and the split() function in Perl.

        http://www.tutorialspoint.com/perl/perl_hashes.htm is just one of many
        possible tutorials about hashes.
        http://www.perlmeme.org/howtos/perlfunc/split_function.html seems a
        decent enough split() tutorial.
        I don't claim anything about the quality of these tutorials (I haven't
        actually read them), they just came from the first page of google
        results.

        The idea of a hash is that it's like an array, but you can access the
        individual variables by a text-based key, instead of by a numeric
        index. So, instead of having to cycle through your list once for
        apples, once for oranges, once for pears, etc., and then re-write your
        code when your, err, user decides that the program should also work
        for tangerines, instead you can use a hash where the fruit name is the
        key and the count is the value. So you could access your hash as
        $fruitCount{'Apples'} += 1, say. Or even better,
        $fruitCount{$fruitName} += 1;
        Doing the latter, you could build the entire hash table without ever
        needing to know the types of fruit in advance; and you would
        automatically cover every type of fruit mentioned in the input file.
        The only question would be, "hey, how do I get the fruit name?"
        Well...

        With the split() function, you can divide your input lines logically,
        instead of by using substr() and hoping that all fruits have the same
        number of characters. split() lets you break a string apart according
        to a delimiter character. In the case of your example here, you have
        the name of a fruit, followed by a pipe |. So that | would be the
        delimiting character; what you really want is the fruit name that
        comes in front of it. If you split each line along the |, then you
        can store the first chunk as the fruit name, and throw away the second
        part (since, at least so far, you don't really care what the rest of
        the line says).

        Once you've built up your hash, you'll want to dump its contents. For
        this, you'll need the keys() function, which you'll no doubt find
        plenty of information about online.

        One of the Perl mottoes is "There's More Than One Way to Do It"
        (TMTOWDI) and the solution I'm hinting you at here is just one of many
        possible ones (that's what makes Perl fun!) But hopefully this will
        set you on the way to finding one of the many solutions.

        Do check back!


        On Wed, Jun 17, 2009 at 4:17 PM, Kevin Patterson<kpatters@...> wrote:
        >
        >
        > Sorry...
        >
        > Here is what I wrote:
        >
        > #!/usr/bin/perl
        >
        > #use warnings;
        > #use diagnostics;
        >
        > my $count = 0;
        > my $key_count = 0;
        > $Input_File="crapdata1.txt";
        > open(INP, $Input_File);
        > @by_jobname=<INP>;
        > close(INP);
        >
        > foreach $New_Jobname (@by_jobname)
        > {
        > $em_job = substr($New_Jobname,11,50);
        > $em_key = substr($New_Jobname,11,2);
        >
        > if ($em_key eq "Apples")
        > {
        > $count[1] = $count[1] + 1;
        > }
        >
        > }
        >
        > print "$em_key count is: $count[1]\n";
        >
        > my $count = 0;
        > foreach $New_Jobname (@by_jobname)
        > {
        > $em_job = substr($New_Jobname,11,50);
        > $em_key = substr($New_Jobname,11,2);
        >
        > if ($em_key eq "Oranges")
        > {
        > $count[2] = $count[2] + 1;
        > }
        >
        > }
        > print "$em_key count is: $count[2]\n";
        > exit;
        >
        > It give me the following results:
        >
        > Apple Count is: 2
        > Oranges Count is: 1
        >
        > Here is the data.
        >
        > Apples |Sweet
        > Oranges |Seeds
        > Apples |Sour
        >
        > -----Original Message-----
        > From: perl-beginner@yahoogroups.com [mailto:perl-beginner@yahoogroups.com]
        > On Behalf Of Scot Robnett
        > Sent: Wednesday, June 17, 2009 12:22 PM
        > To: perl-beginner@yahoogroups.com
        > Subject: RE: [PBML] Newbie question
        >
        > What is the exact format of the file?
        >
        > What have you tried so far?
        >
        > Nobody is going to write the script for you. The group is here to help
        > you figure things out when you get stuck or something isn't working, but
        > you're supposed to try something first.
        >
        >
        >
        > -----Original Message-----
        > From: perl-beginner@yahoogroups.com
        > [mailto:perl-beginner@yahoogroups.com] On Behalf Of Kevin Patterson
        > Sent: Wednesday, June 17, 2009 2:11 PM
        > To: perl-beginner@yahoogroups.com
        > Subject: [PBML] Newbie question
        >
        >
        > Hello..
        >
        > I am writing a perl program in windows..
        >
        > Here is my problem.
        >
        > I have a file containing data such as:
        >
        > Apples
        >
        > Oranges
        >
        > Pears
        >
        > Bananas
        >
        > Plums
        >
        > Apples
        >
        > Oranges
        >
        > Pears
        >
        > bananas
        >
        > kiwi
        >
        > Apples
        >
        > Oranges
        >
        > Pears
        >
        > bananas
        >
        > I write a program to read this file and create a summary report showing
        >
        > How many apples:
        >
        > How many oranges
        >
        > How many Pears
        >
        > Can anyone help me??
        >
        > thanks
        >
        > [Non-text portions of this message have been removed]
        >
        > No virus found in this incoming message.
        > Checked by AVG - www.avg.com
        > Version: 8.5.374 / Virus Database: 270.12.73/2180 - Release Date:
        > 06/17/09 05:53:00
        >
        > No virus found in this outgoing message.
        > Checked by AVG - www.avg.com
        > Version: 8.5.374 / Virus Database: 270.12.73/2180 - Release Date:
        > 06/17/09 05:53:00
        >
        > [Non-text portions of this message have been removed]
        >
        > ------------------------------------
        >
        > Unsubscribing info is here:
        > http://help.yahoo.com/help/us/groups/groups-32.htmlYahoo! Groups Links
        >
        >
      • Kevin Patterson
        Thanks. I am reading on hashes now and practicing on how to use them. I have not taken any perl classes.. I just started reading the books. From:
        Message 3 of 29 , Jun 17, 2009
        • 0 Attachment
          Thanks.



          I am reading on hashes now and practicing on how to use them. I have not
          taken any perl classes..



          I just started reading the books.



          From: perl-beginner@yahoogroups.com [mailto:perl-beginner@yahoogroups.com]
          On Behalf Of Jeff Soules
          Sent: Wednesday, June 17, 2009 1:46 PM
          To: perl-beginner@yahoogroups.com
          Subject: Re: [PBML] Newbie question








          You've had prior experience with other programming languages, right?
          Using substr() this way is a very C or Java way of doing things.

          Read up on hashes ("associative arrays") and the split() function in Perl.

          http://www.tutorialspoint.com/perl/perl_hashes.htm is just one of many
          possible tutorials about hashes.
          http://www.perlmeme.org/howtos/perlfunc/split_function.html seems a
          decent enough split() tutorial.
          I don't claim anything about the quality of these tutorials (I haven't
          actually read them), they just came from the first page of google
          results.

          The idea of a hash is that it's like an array, but you can access the
          individual variables by a text-based key, instead of by a numeric
          index. So, instead of having to cycle through your list once for
          apples, once for oranges, once for pears, etc., and then re-write your
          code when your, err, user decides that the program should also work
          for tangerines, instead you can use a hash where the fruit name is the
          key and the count is the value. So you could access your hash as
          $fruitCount{'Apples'} += 1, say. Or even better,
          $fruitCount{$fruitName} += 1;
          Doing the latter, you could build the entire hash table without ever
          needing to know the types of fruit in advance; and you would
          automatically cover every type of fruit mentioned in the input file.
          The only question would be, "hey, how do I get the fruit name?"
          Well...

          With the split() function, you can divide your input lines logically,
          instead of by using substr() and hoping that all fruits have the same
          number of characters. split() lets you break a string apart according
          to a delimiter character. In the case of your example here, you have
          the name of a fruit, followed by a pipe |. So that | would be the
          delimiting character; what you really want is the fruit name that
          comes in front of it. If you split each line along the |, then you
          can store the first chunk as the fruit name, and throw away the second
          part (since, at least so far, you don't really care what the rest of
          the line says).

          Once you've built up your hash, you'll want to dump its contents. For
          this, you'll need the keys() function, which you'll no doubt find
          plenty of information about online.

          One of the Perl mottoes is "There's More Than One Way to Do It"
          (TMTOWDI) and the solution I'm hinting you at here is just one of many
          possible ones (that's what makes Perl fun!) But hopefully this will
          set you on the way to finding one of the many solutions.

          Do check back!

          On Wed, Jun 17, 2009 at 4:17 PM, Kevin Patterson<kpatters@...
          <mailto:kpatters%40berkeley.edu> > wrote:
          >
          >
          > Sorry...
          >
          > Here is what I wrote:
          >
          > #!/usr/bin/perl
          >
          > #use warnings;
          > #use diagnostics;
          >
          > my $count = 0;
          > my $key_count = 0;
          > $Input_File="crapdata1.txt";
          > open(INP, $Input_File);
          > @by_jobname=<INP>;
          > close(INP);
          >
          > foreach $New_Jobname (@by_jobname)
          > {
          > $em_job = substr($New_Jobname,11,50);
          > $em_key = substr($New_Jobname,11,2);
          >
          > if ($em_key eq "Apples")
          > {
          > $count[1] = $count[1] + 1;
          > }
          >
          > }
          >
          > print "$em_key count is: $count[1]\n";
          >
          > my $count = 0;
          > foreach $New_Jobname (@by_jobname)
          > {
          > $em_job = substr($New_Jobname,11,50);
          > $em_key = substr($New_Jobname,11,2);
          >
          > if ($em_key eq "Oranges")
          > {
          > $count[2] = $count[2] + 1;
          > }
          >
          > }
          > print "$em_key count is: $count[2]\n";
          > exit;
          >
          > It give me the following results:
          >
          > Apple Count is: 2
          > Oranges Count is: 1
          >
          > Here is the data.
          >
          > Apples |Sweet
          > Oranges |Seeds
          > Apples |Sour
          >
          > -----Original Message-----
          > From: perl-beginner@yahoogroups.com
          <mailto:perl-beginner%40yahoogroups.com>
          [mailto:perl-beginner@yahoogroups.com
          <mailto:perl-beginner%40yahoogroups.com> ]
          > On Behalf Of Scot Robnett
          > Sent: Wednesday, June 17, 2009 12:22 PM
          > To: perl-beginner@yahoogroups.com <mailto:perl-beginner%40yahoogroups.com>

          > Subject: RE: [PBML] Newbie question
          >
          > What is the exact format of the file?
          >
          > What have you tried so far?
          >
          > Nobody is going to write the script for you. The group is here to help
          > you figure things out when you get stuck or something isn't working, but
          > you're supposed to try something first.
          >
          >
          >
          > -----Original Message-----
          > From: perl-beginner@yahoogroups.com
          <mailto:perl-beginner%40yahoogroups.com>
          > [mailto:perl-beginner@yahoogroups.com
          <mailto:perl-beginner%40yahoogroups.com> ] On Behalf Of Kevin Patterson
          > Sent: Wednesday, June 17, 2009 2:11 PM
          > To: perl-beginner@yahoogroups.com <mailto:perl-beginner%40yahoogroups.com>

          > Subject: [PBML] Newbie question
          >
          >
          > Hello..
          >
          > I am writing a perl program in windows..
          >
          > Here is my problem.
          >
          > I have a file containing data such as:
          >
          > Apples
          >
          > Oranges
          >
          > Pears
          >
          > Bananas
          >
          > Plums
          >
          > Apples
          >
          > Oranges
          >
          > Pears
          >
          > bananas
          >
          > kiwi
          >
          > Apples
          >
          > Oranges
          >
          > Pears
          >
          > bananas
          >
          > I write a program to read this file and create a summary report showing
          >
          > How many apples:
          >
          > How many oranges
          >
          > How many Pears
          >
          > Can anyone help me??
          >
          > thanks
          >
          > [Non-text portions of this message have been removed]
          >
          > No virus found in this incoming message.
          > Checked by AVG - www.avg.com
          > Version: 8.5.374 / Virus Database: 270.12.73/2180 - Release Date:
          > 06/17/09 05:53:00
          >
          > No virus found in this outgoing message.
          > Checked by AVG - www.avg.com
          > Version: 8.5.374 / Virus Database: 270.12.73/2180 - Release Date:
          > 06/17/09 05:53:00
          >
          > [Non-text portions of this message have been removed]
          >
          > ------------------------------------
          >
          > Unsubscribing info is here:
          > http://help.yahoo.com/help/us/groups/groups-32.htmlYahoo! Groups Links
          >
          >





          [Non-text portions of this message have been removed]
        • Jeff Soules
          ... If you re learning from books, I cannot recommend _Learning_Perl_ highly enough. It s got a very intelligent presentation order, tons of useful example
          Message 4 of 29 , Jun 17, 2009
          • 0 Attachment
            > I am reading on hashes now and practicing on how to use them. I have not
            > taken any perl classes..
            >
            > I just started reading the books.

            If you're learning from books, I cannot recommend _Learning_Perl_
            highly enough. It's got a very intelligent presentation order, tons
            of useful example exercises, and even an engaging body text.

            Good luck.

            On Wed, Jun 17, 2009 at 4:50 PM, Kevin Patterson<kpatters@...> wrote:
            >
            >
            > Thanks.
            >
            > I am reading on hashes now and practicing on how to use them. I have not
            > taken any perl classes..
            >
            > I just started reading the books.
            >
            > From: perl-beginner@yahoogroups.com [mailto:perl-beginner@yahoogroups.com]
            > On Behalf Of Jeff Soules
            > Sent: Wednesday, June 17, 2009 1:46 PM
            > To: perl-beginner@yahoogroups.com
            > Subject: Re: [PBML] Newbie question
            >
            > You've had prior experience with other programming languages, right?
            > Using substr() this way is a very C or Java way of doing things.
            >
            > Read up on hashes ("associative arrays") and the split() function in Perl.
            >
            > http://www.tutorialspoint.com/perl/perl_hashes.htm is just one of many
            > possible tutorials about hashes.
            > http://www.perlmeme.org/howtos/perlfunc/split_function.html seems a
            > decent enough split() tutorial.
            > I don't claim anything about the quality of these tutorials (I haven't
            > actually read them), they just came from the first page of google
            > results.
            >
            > The idea of a hash is that it's like an array, but you can access the
            > individual variables by a text-based key, instead of by a numeric
            > index. So, instead of having to cycle through your list once for
            > apples, once for oranges, once for pears, etc., and then re-write your
            > code when your, err, user decides that the program should also work
            > for tangerines, instead you can use a hash where the fruit name is the
            > key and the count is the value. So you could access your hash as
            > $fruitCount{'Apples'} += 1, say. Or even better,
            > $fruitCount{$fruitName} += 1;
            > Doing the latter, you could build the entire hash table without ever
            > needing to know the types of fruit in advance; and you would
            > automatically cover every type of fruit mentioned in the input file.
            > The only question would be, "hey, how do I get the fruit name?"
            > Well...
            >
            > With the split() function, you can divide your input lines logically,
            > instead of by using substr() and hoping that all fruits have the same
            > number of characters. split() lets you break a string apart according
            > to a delimiter character. In the case of your example here, you have
            > the name of a fruit, followed by a pipe |. So that | would be the
            > delimiting character; what you really want is the fruit name that
            > comes in front of it. If you split each line along the |, then you
            > can store the first chunk as the fruit name, and throw away the second
            > part (since, at least so far, you don't really care what the rest of
            > the line says).
            >
            > Once you've built up your hash, you'll want to dump its contents. For
            > this, you'll need the keys() function, which you'll no doubt find
            > plenty of information about online.
            >
            > One of the Perl mottoes is "There's More Than One Way to Do It"
            > (TMTOWDI) and the solution I'm hinting you at here is just one of many
            > possible ones (that's what makes Perl fun!) But hopefully this will
            > set you on the way to finding one of the many solutions.
            >
            > Do check back!
            >
            > On Wed, Jun 17, 2009 at 4:17 PM, Kevin Patterson<kpatters@...
            > <mailto:kpatters%40berkeley.edu> > wrote:
            >>
            >>
            >> Sorry...
            >>
            >> Here is what I wrote:
            >>
            >> #!/usr/bin/perl
            >>
            >> #use warnings;
            >> #use diagnostics;
            >>
            >> my $count = 0;
            >> my $key_count = 0;
            >> $Input_File="crapdata1.txt";
            >> open(INP, $Input_File);
            >> @by_jobname=<INP>;
            >> close(INP);
            >>
            >> foreach $New_Jobname (@by_jobname)
            >> {
            >> $em_job = substr($New_Jobname,11,50);
            >> $em_key = substr($New_Jobname,11,2);
            >>
            >> if ($em_key eq "Apples")
            >> {
            >> $count[1] = $count[1] + 1;
            >> }
            >>
            >> }
            >>
            >> print "$em_key count is: $count[1]\n";
            >>
            >> my $count = 0;
            >> foreach $New_Jobname (@by_jobname)
            >> {
            >> $em_job = substr($New_Jobname,11,50);
            >> $em_key = substr($New_Jobname,11,2);
            >>
            >> if ($em_key eq "Oranges")
            >> {
            >> $count[2] = $count[2] + 1;
            >> }
            >>
            >> }
            >> print "$em_key count is: $count[2]\n";
            >> exit;
            >>
            >> It give me the following results:
            >>
            >> Apple Count is: 2
            >> Oranges Count is: 1
            >>
            >> Here is the data.
            >>
            >> Apples |Sweet
            >> Oranges |Seeds
            >> Apples |Sour
            >>
            >> -----Original Message-----
            >> From: perl-beginner@yahoogroups.com
            > <mailto:perl-beginner%40yahoogroups.com>
            > [mailto:perl-beginner@yahoogroups.com
            > <mailto:perl-beginner%40yahoogroups.com> ]
            >> On Behalf Of Scot Robnett
            >> Sent: Wednesday, June 17, 2009 12:22 PM
            >> To: perl-beginner@yahoogroups.com <mailto:perl-beginner%40yahoogroups.com>
            >
            >> Subject: RE: [PBML] Newbie question
            >>
            >> What is the exact format of the file?
            >>
            >> What have you tried so far?
            >>
            >> Nobody is going to write the script for you. The group is here to help
            >> you figure things out when you get stuck or something isn't working, but
            >> you're supposed to try something first.
            >>
            >>
            >>
            >> -----Original Message-----
            >> From: perl-beginner@yahoogroups.com
            > <mailto:perl-beginner%40yahoogroups.com>
            >> [mailto:perl-beginner@yahoogroups.com
            > <mailto:perl-beginner%40yahoogroups.com> ] On Behalf Of Kevin Patterson
            >> Sent: Wednesday, June 17, 2009 2:11 PM
            >> To: perl-beginner@yahoogroups.com <mailto:perl-beginner%40yahoogroups.com>
            >
            >> Subject: [PBML] Newbie question
            >>
            >>
            >> Hello..
            >>
            >> I am writing a perl program in windows..
            >>
            >> Here is my problem.
            >>
            >> I have a file containing data such as:
            >>
            >> Apples
            >>
            >> Oranges
            >>
            >> Pears
            >>
            >> Bananas
            >>
            >> Plums
            >>
            >> Apples
            >>
            >> Oranges
            >>
            >> Pears
            >>
            >> bananas
            >>
            >> kiwi
            >>
            >> Apples
            >>
            >> Oranges
            >>
            >> Pears
            >>
            >> bananas
            >>
            >> I write a program to read this file and create a summary report showing
            >>
            >> How many apples:
            >>
            >> How many oranges
            >>
            >> How many Pears
            >>
            >> Can anyone help me??
            >>
            >> thanks
            >>
            >> [Non-text portions of this message have been removed]
            >>
            >> No virus found in this incoming message.
            >> Checked by AVG - www.avg.com
            >> Version: 8.5.374 / Virus Database: 270.12.73/2180 - Release Date:
            >> 06/17/09 05:53:00
            >>
            >> No virus found in this outgoing message.
            >> Checked by AVG - www.avg.com
            >> Version: 8.5.374 / Virus Database: 270.12.73/2180 - Release Date:
            >> 06/17/09 05:53:00
            >>
            >> [Non-text portions of this message have been removed]
            >>
            >> ------------------------------------
            >>
            >> Unsubscribing info is here:
            >> http://help.yahoo.com/help/us/groups/groups-32.htmlYahoo! Groups Links
            >>
            >>
            >
            > [Non-text portions of this message have been removed]
            >
            >
          • Kevin Patterson
            Thanks. I have it on order and reading it online now.. From: perl-beginner@yahoogroups.com [mailto:perl-beginner@yahoogroups.com] On Behalf Of Jeff Soules
            Message 5 of 29 , Jun 17, 2009
            • 0 Attachment
              Thanks.



              I have it on order and reading it online now..



              From: perl-beginner@yahoogroups.com [mailto:perl-beginner@yahoogroups.com]
              On Behalf Of Jeff Soules
              Sent: Wednesday, June 17, 2009 1:53 PM
              To: perl-beginner@yahoogroups.com
              Subject: Re: [PBML] Newbie question








              > I am reading on hashes now and practicing on how to use them. I have not
              > taken any perl classes..
              >
              > I just started reading the books.

              If you're learning from books, I cannot recommend _Learning_Perl_
              highly enough. It's got a very intelligent presentation order, tons
              of useful example exercises, and even an engaging body text.

              Good luck.

              On Wed, Jun 17, 2009 at 4:50 PM, Kevin Patterson<kpatters@...
              <mailto:kpatters%40berkeley.edu> > wrote:
              >
              >
              > Thanks.
              >
              > I am reading on hashes now and practicing on how to use them. I have not
              > taken any perl classes..
              >
              > I just started reading the books.
              >
              > From: perl-beginner@yahoogroups.com
              <mailto:perl-beginner%40yahoogroups.com>
              [mailto:perl-beginner@yahoogroups.com
              <mailto:perl-beginner%40yahoogroups.com> ]
              > On Behalf Of Jeff Soules
              > Sent: Wednesday, June 17, 2009 1:46 PM
              > To: perl-beginner@yahoogroups.com <mailto:perl-beginner%40yahoogroups.com>

              > Subject: Re: [PBML] Newbie question
              >
              > You've had prior experience with other programming languages, right?
              > Using substr() this way is a very C or Java way of doing things.
              >
              > Read up on hashes ("associative arrays") and the split() function in Perl.
              >
              > http://www.tutorialspoint.com/perl/perl_hashes.htm is just one of many
              > possible tutorials about hashes.
              > http://www.perlmeme.org/howtos/perlfunc/split_function.html seems a
              > decent enough split() tutorial.
              > I don't claim anything about the quality of these tutorials (I haven't
              > actually read them), they just came from the first page of google
              > results.
              >
              > The idea of a hash is that it's like an array, but you can access the
              > individual variables by a text-based key, instead of by a numeric
              > index. So, instead of having to cycle through your list once for
              > apples, once for oranges, once for pears, etc., and then re-write your
              > code when your, err, user decides that the program should also work
              > for tangerines, instead you can use a hash where the fruit name is the
              > key and the count is the value. So you could access your hash as
              > $fruitCount{'Apples'} += 1, say. Or even better,
              > $fruitCount{$fruitName} += 1;
              > Doing the latter, you could build the entire hash table without ever
              > needing to know the types of fruit in advance; and you would
              > automatically cover every type of fruit mentioned in the input file.
              > The only question would be, "hey, how do I get the fruit name?"
              > Well...
              >
              > With the split() function, you can divide your input lines logically,
              > instead of by using substr() and hoping that all fruits have the same
              > number of characters. split() lets you break a string apart according
              > to a delimiter character. In the case of your example here, you have
              > the name of a fruit, followed by a pipe |. So that | would be the
              > delimiting character; what you really want is the fruit name that
              > comes in front of it. If you split each line along the |, then you
              > can store the first chunk as the fruit name, and throw away the second
              > part (since, at least so far, you don't really care what the rest of
              > the line says).
              >
              > Once you've built up your hash, you'll want to dump its contents. For
              > this, you'll need the keys() function, which you'll no doubt find
              > plenty of information about online.
              >
              > One of the Perl mottoes is "There's More Than One Way to Do It"
              > (TMTOWDI) and the solution I'm hinting you at here is just one of many
              > possible ones (that's what makes Perl fun!) But hopefully this will
              > set you on the way to finding one of the many solutions.
              >
              > Do check back!
              >
              > On Wed, Jun 17, 2009 at 4:17 PM, Kevin Patterson<kpatters@...
              <mailto:kpatters%40berkeley.edu>
              > <mailto:kpatters%40berkeley.edu> > wrote:
              >>
              >>
              >> Sorry...
              >>
              >> Here is what I wrote:
              >>
              >> #!/usr/bin/perl
              >>
              >> #use warnings;
              >> #use diagnostics;
              >>
              >> my $count = 0;
              >> my $key_count = 0;
              >> $Input_File="crapdata1.txt";
              >> open(INP, $Input_File);
              >> @by_jobname=<INP>;
              >> close(INP);
              >>
              >> foreach $New_Jobname (@by_jobname)
              >> {
              >> $em_job = substr($New_Jobname,11,50);
              >> $em_key = substr($New_Jobname,11,2);
              >>
              >> if ($em_key eq "Apples")
              >> {
              >> $count[1] = $count[1] + 1;
              >> }
              >>
              >> }
              >>
              >> print "$em_key count is: $count[1]\n";
              >>
              >> my $count = 0;
              >> foreach $New_Jobname (@by_jobname)
              >> {
              >> $em_job = substr($New_Jobname,11,50);
              >> $em_key = substr($New_Jobname,11,2);
              >>
              >> if ($em_key eq "Oranges")
              >> {
              >> $count[2] = $count[2] + 1;
              >> }
              >>
              >> }
              >> print "$em_key count is: $count[2]\n";
              >> exit;
              >>
              >> It give me the following results:
              >>
              >> Apple Count is: 2
              >> Oranges Count is: 1
              >>
              >> Here is the data.
              >>
              >> Apples |Sweet
              >> Oranges |Seeds
              >> Apples |Sour
              >>
              >> -----Original Message-----
              >> From: perl-beginner@yahoogroups.com
              <mailto:perl-beginner%40yahoogroups.com>
              > <mailto:perl-beginner%40yahoogroups.com>
              > [mailto:perl-beginner@yahoogroups.com
              <mailto:perl-beginner%40yahoogroups.com>
              > <mailto:perl-beginner%40yahoogroups.com> ]
              >> On Behalf Of Scot Robnett
              >> Sent: Wednesday, June 17, 2009 12:22 PM
              >> To: perl-beginner@yahoogroups.com
              <mailto:perl-beginner%40yahoogroups.com>
              <mailto:perl-beginner%40yahoogroups.com>
              >
              >> Subject: RE: [PBML] Newbie question
              >>
              >> What is the exact format of the file?
              >>
              >> What have you tried so far?
              >>
              >> Nobody is going to write the script for you. The group is here to help
              >> you figure things out when you get stuck or something isn't working, but
              >> you're supposed to try something first.
              >>
              >>
              >>
              >> -----Original Message-----
              >> From: perl-beginner@yahoogroups.com
              <mailto:perl-beginner%40yahoogroups.com>
              > <mailto:perl-beginner%40yahoogroups.com>
              >> [mailto:perl-beginner@yahoogroups.com
              <mailto:perl-beginner%40yahoogroups.com>
              > <mailto:perl-beginner%40yahoogroups.com> ] On Behalf Of Kevin Patterson
              >> Sent: Wednesday, June 17, 2009 2:11 PM
              >> To: perl-beginner@yahoogroups.com
              <mailto:perl-beginner%40yahoogroups.com>
              <mailto:perl-beginner%40yahoogroups.com>
              >
              >> Subject: [PBML] Newbie question
              >>
              >>
              >> Hello..
              >>
              >> I am writing a perl program in windows..
              >>
              >> Here is my problem.
              >>
              >> I have a file containing data such as:
              >>
              >> Apples
              >>
              >> Oranges
              >>
              >> Pears
              >>
              >> Bananas
              >>
              >> Plums
              >>
              >> Apples
              >>
              >> Oranges
              >>
              >> Pears
              >>
              >> bananas
              >>
              >> kiwi
              >>
              >> Apples
              >>
              >> Oranges
              >>
              >> Pears
              >>
              >> bananas
              >>
              >> I write a program to read this file and create a summary report showing
              >>
              >> How many apples:
              >>
              >> How many oranges
              >>
              >> How many Pears
              >>
              >> Can anyone help me??
              >>
              >> thanks
              >>
              >> [Non-text portions of this message have been removed]
              >>
              >> No virus found in this incoming message.
              >> Checked by AVG - www.avg.com
              >> Version: 8.5.374 / Virus Database: 270.12.73/2180 - Release Date:
              >> 06/17/09 05:53:00
              >>
              >> No virus found in this outgoing message.
              >> Checked by AVG - www.avg.com
              >> Version: 8.5.374 / Virus Database: 270.12.73/2180 - Release Date:
              >> 06/17/09 05:53:00
              >>
              >> [Non-text portions of this message have been removed]
              >>
              >> ------------------------------------
              >>
              >> Unsubscribing info is here:
              >> http://help.yahoo.com/help/us/groups/groups-32.htmlYahoo! Groups Links
              >>
              >>
              >
              > [Non-text portions of this message have been removed]
              >
              >





              [Non-text portions of this message have been removed]
            • Kevin Patterson
              Ok. Im stuck again. I need to sort this input file below before my code.. Cant someone help me with this?? ...
              Message 6 of 29 , Jun 17, 2009
              • 0 Attachment
                Ok.



                Im stuck again.



                I need to sort this input file below before my code..

                Cant someone help me with this??



                >> #!/usr/bin/perl
                >>
                >> #use warnings;
                >> #use diagnostics;
                >>
                >> my $count = 0;
                >> my $key_count = 0;
                >> $Input_File="crapdata1.txt";
                >> open(INP, $Input_File);
                >> @by_jobname=<INP>;
                >> close(INP);
                >>
                >> foreach $New_Jobname (@by_jobname)
                >> {
                >> $em_job = substr($New_Jobname,11,50);
                >> $em_key = substr($New_Jobname,11,2);
                >>
                >> if ($em_key eq "Apples")
                >> {
                >> $count[1] = $count[1] + 1;
                >> }
                >>
                >> }
                >>
                >> print "$em_key count is: $count[1]\n";
                >>
                >> my $count = 0;
                >> foreach $New_Jobname (@by_jobname)
                >> {
                >> $em_job = substr($New_Jobname,11,50);
                >> $em_key = substr($New_Jobname,11,2);
                >>
                >> if ($em_key eq "Oranges")
                >> {
                >> $count[2] = $count[2] + 1;
                >> }
                >>
                >> }
                >> print "$em_key count is: $count[2]\n";
                >> exit;
                >>
                >> It give me the following results:
                >>
                >> Apple Count is: 2
                >> Oranges Count is: 1
                >>
                >> Here is the data.
                >>
                >> Apples |Sweet
                >> Oranges |Seeds
                >> Apples |Sour
                >>
                >> -----Original Message-----
                >> From: perl-beginner@yahoogroups.com
                <mailto:perl-beginner%40yahoogroups.com>
                <mailto:perl-beginner%40yahoogroups.com>
                > <mailto:perl-beginner%40yahoogroups.com>
                > [mailto:perl-beginner@yahoogroups.com
                <mailto:perl-beginner%40yahoogroups.com>
                <mailto:perl-beginner%40yahoogroups.com>
                > <mailto:perl-beginner%40yahoogroups.com> ]
                >> On Behalf Of Scot Robnett
                >> Sent: Wednesday, June 17, 2009 12:22 PM
                >> To: perl-beginner@yahoogroups.com
                <mailto:perl-beginner%40yahoogroups.com>
                <mailto:perl-beginner%40yahoogroups.com>
                <mailto:perl-beginner%40yahoogroups.com>
                >
                >> Subject: RE: [PBML] Newbie question
                >>
                >> What is the exact format of the file?
                >>
                >> What have you tried so far?
                >>
                >> Nobody is going to write the script for you. The group is here to help
                >> you figure things out when you get stuck or something isn't working, but
                >> you're supposed to try something first.
                >>
                >>
                >>
                >> -----Original Message-----
                >> From: perl-beginner@yahoogroups.com
                <mailto:perl-beginner%40yahoogroups.com>
                <mailto:perl-beginner%40yahoogroups.com>
                > <mailto:perl-beginner%40yahoogroups.com>
                >> [mailto:perl-beginner@yahoogroups.com
                <mailto:perl-beginner%40yahoogroups.com>
                <mailto:perl-beginner%40yahoogroups.com>
                > <mailto:perl-beginner%40yahoogroups.com> ] On Behalf Of Kevin Patterson
                >> Sent: Wednesday, June 17, 2009 2:11 PM
                >> To: perl-beginner@yahoogroups.com
                <mailto:perl-beginner%40yahoogroups.com>
                <mailto:perl-beginner%40yahoogroups.com>
                <mailto:perl-beginner%40yahoogroups.com>
                >
                >> Subject: [PBML] Newbie question
                >>
                >>
                >> Hello..
                >>
                >> I am writing a perl program in windows..
                >>
                >> Here is my problem.
                >>
                >> I have a file containing data such as:
                >>
                >> Apples
                >>
                >> Oranges
                >>
                >> Pears
                >>
                >> Bananas
                >>
                >> Plums
                >>
                >> Apples
                >>
                >> Oranges
                >>
                >> Pears
                >>
                >> bananas
                >>
                >> kiwi
                >>
                >> Apples
                >>
                >> Oranges
                >>
                >> Pears
                >>
                >> bananas
                >>
                >> I write a program to read this file and create a summary report showing
                >>
                >> How many apples:
                >>
                >> How many oranges
                >>
                >> How many Pears
                >>
                >> Can anyone help me??
                >>
                >> thanks
                >>
                >> [Non-text portions of this message have been removed]
                >>
                >> No virus found in this incoming message.
                >> Checked by AVG - www.avg.com
                >> Version: 8.5.374 / Virus Database: 270.12.73/2180 - Release Date:
                >> 06/17/09 05:53:00
                >>
                >> No virus found in this outgoing message.
                >> Checked by AVG - www.avg.com
                >> Version: 8.5.374 / Virus Database: 270.12.73/2180 - Release Date:
                >> 06/17/09 05:53:00
                >>
                >> [Non-text portions of this message have been removed]
                >>
                >> ------------------------------------
                >>
                >> Unsubscribing info is here:
                >> http://help.yahoo.com/help/us/groups/groups-32.htmlYahoo! Groups Links
                >>
                >>
                >
                > [Non-text portions of this message have been removed]
                >
                >

                [Non-text portions of this message have been removed]





                [Non-text portions of this message have been removed]
              • merlyn@stonehenge.com
                ... Kevin I have it on order and reading it online now.. I hope by reading it online you mean you have a safari.oreilly.com account (or access to it through
                Message 7 of 29 , Jun 17, 2009
                • 0 Attachment
                  >>>>> "Kevin" == Kevin Patterson <kpatters@...> writes:

                  Kevin> I have it on order and reading it online now..

                  I hope by "reading it online" you mean you have a safari.oreilly.com account
                  (or access to it through some organization), and not that you have obtained an
                  *ILLEGAL* copy from a pirate source.

                  There are no *LEGAL* unrestricted copies of Learning Perl on the net.
                  Period. If you find one, please report it to infringement@....

                  Thanks.

                  --
                  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
                • Jeff Soules
                  In a Unix environment, the easiest way to sort the file would be to use the sort utility on the file. But you said you re running in Windows. So, since your
                  Message 8 of 29 , Jun 18, 2009
                  • 0 Attachment
                    In a Unix environment, the easiest way to sort the file would be to
                    use the sort utility on the file. But you said you're running in
                    Windows. So, since your code was loading the entire file into an
                    array (one line per array element) before processing it, you could
                    then sort that array using Perl's sort() function. This would put the
                    lines in alphabetical order.

                    However, per the problem description that you've posted and the
                    hash-based solution which people have pointed you towards, the line
                    order in the file shouldn't be a problem. Has your problem situation
                    changed?

                    On Wed, Jun 17, 2009 at 6:07 PM, Kevin Patterson<kpatters@...> wrote:
                    >
                    >
                    > Ok.
                    >
                    > Im stuck again.
                    >
                    > I need to sort this input file below before my code..
                    >
                    > Cant someone help me with this??
                    >
                    >>> #!/usr/bin/perl
                    >>>
                    >>> #use warnings;
                    >>> #use diagnostics;
                    >>>
                    >>> my $count = 0;
                    >>> my $key_count = 0;
                    >>> $Input_File="crapdata1.txt";
                    >>> open(INP, $Input_File);
                    >>> @by_jobname=<INP>;
                    >>> close(INP);
                    >>>
                    >>> foreach $New_Jobname (@by_jobname)
                    >>> {
                    >>> $em_job = substr($New_Jobname,11,50);
                    >>> $em_key = substr($New_Jobname,11,2);
                    >>>
                    >>> if ($em_key eq "Apples")
                    >>> {
                    >>> $count[1] = $count[1] + 1;
                    >>> }
                    >>>
                    >>> }
                    >>>
                    >>> print "$em_key count is: $count[1]\n";
                    >>>
                    >>> my $count = 0;
                    >>> foreach $New_Jobname (@by_jobname)
                    >>> {
                    >>> $em_job = substr($New_Jobname,11,50);
                    >>> $em_key = substr($New_Jobname,11,2);
                    >>>
                    >>> if ($em_key eq "Oranges")
                    >>> {
                    >>> $count[2] = $count[2] + 1;
                    >>> }
                    >>>
                    >>> }
                    >>> print "$em_key count is: $count[2]\n";
                    >>> exit;
                    >>>
                    >>> It give me the following results:
                    >>>
                    >>> Apple Count is: 2
                    >>> Oranges Count is: 1
                    >>>
                    >>> Here is the data.
                    >>>
                    >>> Apples |Sweet
                    >>> Oranges |Seeds
                    >>> Apples |Sour
                    >>>
                    >>> -----Original Message-----
                    >>> From: perl-beginner@yahoogroups.com
                    > <mailto:perl-beginner%40yahoogroups.com>
                    > <mailto:perl-beginner%40yahoogroups.com>
                    >> <mailto:perl-beginner%40yahoogroups.com>
                    >> [mailto:perl-beginner@yahoogroups.com
                    > <mailto:perl-beginner%40yahoogroups.com>
                    > <mailto:perl-beginner%40yahoogroups.com>
                    >> <mailto:perl-beginner%40yahoogroups.com> ]
                    >>> On Behalf Of Scot Robnett
                    >>> Sent: Wednesday, June 17, 2009 12:22 PM
                    >>> To: perl-beginner@yahoogroups.com
                    > <mailto:perl-beginner%40yahoogroups.com>
                    > <mailto:perl-beginner%40yahoogroups.com>
                    > <mailto:perl-beginner%40yahoogroups.com>
                    >>
                    >>> Subject: RE: [PBML] Newbie question
                    >>>
                    >>> What is the exact format of the file?
                    >>>
                    >>> What have you tried so far?
                    >>>
                    >>> Nobody is going to write the script for you. The group is here to help
                    >>> you figure things out when you get stuck or something isn't working, but
                    >>> you're supposed to try something first.
                    >>>
                    >>>
                    >>>
                    >>> -----Original Message-----
                    >>> From: perl-beginner@yahoogroups.com
                    > <mailto:perl-beginner%40yahoogroups.com>
                    > <mailto:perl-beginner%40yahoogroups.com>
                    >> <mailto:perl-beginner%40yahoogroups.com>
                    >>> [mailto:perl-beginner@yahoogroups.com
                    > <mailto:perl-beginner%40yahoogroups.com>
                    > <mailto:perl-beginner%40yahoogroups.com>
                    >> <mailto:perl-beginner%40yahoogroups.com> ] On Behalf Of Kevin Patterson
                    >>> Sent: Wednesday, June 17, 2009 2:11 PM
                    >>> To: perl-beginner@yahoogroups.com
                    > <mailto:perl-beginner%40yahoogroups.com>
                    > <mailto:perl-beginner%40yahoogroups.com>
                    > <mailto:perl-beginner%40yahoogroups.com>
                    >>
                    >>> Subject: [PBML] Newbie question
                    >>>
                    >>>
                    >>> Hello..
                    >>>
                    >>> I am writing a perl program in windows..
                    >>>
                    >>> Here is my problem.
                    >>>
                    >>> I have a file containing data such as:
                    >>>
                    >>> Apples
                    >>>
                    >>> Oranges
                    >>>
                    >>> Pears
                    >>>
                    >>> Bananas
                    >>>
                    >>> Plums
                    >>>
                    >>> Apples
                    >>>
                    >>> Oranges
                    >>>
                    >>> Pears
                    >>>
                    >>> bananas
                    >>>
                    >>> kiwi
                    >>>
                    >>> Apples
                    >>>
                    >>> Oranges
                    >>>
                    >>> Pears
                    >>>
                    >>> bananas
                    >>>
                    >>> I write a program to read this file and create a summary report showing
                    >>>
                    >>> How many apples:
                    >>>
                    >>> How many oranges
                    >>>
                    >>> How many Pears
                    >>>
                    >>> Can anyone help me??
                    >>>
                    >>> thanks
                    >>>
                    >>> [Non-text portions of this message have been removed]
                    >>>
                    >>> No virus found in this incoming message.
                    >>> Checked by AVG - www.avg.com
                    >>> Version: 8.5.374 / Virus Database: 270.12.73/2180 - Release Date:
                    >>> 06/17/09 05:53:00
                    >>>
                    >>> No virus found in this outgoing message.
                    >>> Checked by AVG - www.avg.com
                    >>> Version: 8.5.374 / Virus Database: 270.12.73/2180 - Release Date:
                    >>> 06/17/09 05:53:00
                    >>>
                    >>> [Non-text portions of this message have been removed]
                    >>>
                    >>> ------------------------------------
                    >>>
                    >>> Unsubscribing info is here:
                    >>> http://help.yahoo.com/help/us/groups/groups-32.htmlYahoo! Groups Links
                    >>>
                    >>>
                    >>
                    >> [Non-text portions of this message have been removed]
                    >>
                    >>
                    >
                    > [Non-text portions of this message have been removed]
                    >
                    > [Non-text portions of this message have been removed]
                    >
                    >
                  • Robert Lee Binkley
                    Hope this helps Output: Apples count is: 3 Oranges count is: 3 Pears count is: 3 Src: #!/usr/bin/perl use strict; use warnings; my $count = 0; my
                    Message 9 of 29 , Jun 18, 2009
                    • 0 Attachment
                      Hope this helps



                      Output:

                      Apples count is: 3
                      Oranges count is: 3
                      Pears count is: 3



                      Src:

                      #!/usr/bin/perl



                      use strict;
                      use warnings;
                      my $count = 0;
                      my $key_count = 0;



                      my %MFN = qw(apples 0 oranges 0 pears 0);
                      my $MyFruitNames = \%MFN;



                      INPUTTP: while ( <DATA> ) {
                      chomp;
                      last if ( /^\s*_{1,2}\s*end\d{0,}\s*_{1,}/ );

                      s/^\s+//g;
                      $_ = lc($_);
                      $MyFruitNames->{$_}++ if ( defined $MyFruitNames->{$_} );
                      }
                      my $MyPrtKey;
                      foreach $MyPrtKey ( sort keys %{$MyFruitNames} ) {
                      printf "%s count is: %3d\n",
                      ucfirst($MyPrtKey),
                      $MyFruitNames->{$MyPrtKey};
                      }
                      __DATA__
                      Apples
                      Oranges
                      Pears
                      Bananas
                      Plums
                      Apples
                      Oranges
                      Pears
                      bananas
                      kiwi
                      Apples
                      Oranges
                      Pears
                      bananas
                      __END0__





                      From: perl-beginner@yahoogroups.com [mailto:perl-beginner@yahoogroups.com]
                      On Behalf Of Jeff Soules
                      Sent: Thursday, June 18, 2009 7:22 AM
                      To: perl-beginner@yahoogroups.com
                      Subject: Re: [PBML] Newbie question








                      In a Unix environment, the easiest way to sort the file would be to
                      use the sort utility on the file. But you said you're running in
                      Windows. So, since your code was loading the entire file into an
                      array (one line per array element) before processing it, you could
                      then sort that array using Perl's sort() function. This would put the
                      lines in alphabetical order.

                      However, per the problem description that you've posted and the
                      hash-based solution which people have pointed you towards, the line
                      order in the file shouldn't be a problem. Has your problem situation
                      changed?

                      On Wed, Jun 17, 2009 at 6:07 PM, Kevin Patterson<kpatters@...
                      <mailto:kpatters%40berkeley.edu> > wrote:
                      >
                      >
                      > Ok.
                      >
                      > Im stuck again.
                      >
                      > I need to sort this input file below before my code..
                      >
                      > Cant someone help me with this??
                      >
                      >>> #!/usr/bin/perl
                      >>>
                      >>> #use warnings;
                      >>> #use diagnostics;
                      >>>
                      >>> my $count = 0;
                      >>> my $key_count = 0;
                      >>> $Input_File="crapdata1.txt";
                      >>> open(INP, $Input_File);
                      >>> @by_jobname=<INP>;
                      >>> close(INP);
                      >>>
                      >>> foreach $New_Jobname (@by_jobname)
                      >>> {
                      >>> $em_job = substr($New_Jobname,11,50);
                      >>> $em_key = substr($New_Jobname,11,2);
                      >>>
                      >>> if ($em_key eq "Apples")
                      >>> {
                      >>> $count[1] = $count[1] + 1;
                      >>> }
                      >>>
                      >>> }
                      >>>
                      >>> print "$em_key count is: $count[1]\n";
                      >>>
                      >>> my $count = 0;
                      >>> foreach $New_Jobname (@by_jobname)
                      >>> {
                      >>> $em_job = substr($New_Jobname,11,50);
                      >>> $em_key = substr($New_Jobname,11,2);
                      >>>
                      >>> if ($em_key eq "Oranges")
                      >>> {
                      >>> $count[2] = $count[2] + 1;
                      >>> }
                      >>>
                      >>> }
                      >>> print "$em_key count is: $count[2]\n";
                      >>> exit;
                      >>>
                      >>> It give me the following results:
                      >>>
                      >>> Apple Count is: 2
                      >>> Oranges Count is: 1
                      >>>
                      >>> Here is the data.
                      >>>
                      >>> Apples |Sweet
                      >>> Oranges |Seeds
                      >>> Apples |Sour
                      >>>
                      >>> -----Original Message-----
                      >>> From: perl-beginner@yahoogroups.com
                      <mailto:perl-beginner%40yahoogroups.com>
                      > <mailto:perl-beginner%40yahoogroups.com>
                      > <mailto:perl-beginner%40yahoogroups.com>
                      >> <mailto:perl-beginner%40yahoogroups.com>
                      >> [mailto:perl-beginner@yahoogroups.com
                      <mailto:perl-beginner%40yahoogroups.com>
                      > <mailto:perl-beginner%40yahoogroups.com>
                      > <mailto:perl-beginner%40yahoogroups.com>
                      >> <mailto:perl-beginner%40yahoogroups.com> ]
                      >>> On Behalf Of Scot Robnett
                      >>> Sent: Wednesday, June 17, 2009 12:22 PM
                      >>> To: perl-beginner@yahoogroups.com
                      <mailto:perl-beginner%40yahoogroups.com>
                      > <mailto:perl-beginner%40yahoogroups.com>
                      > <mailto:perl-beginner%40yahoogroups.com>
                      > <mailto:perl-beginner%40yahoogroups.com>
                      >>
                      >>> Subject: RE: [PBML] Newbie question
                      >>>
                      >>> What is the exact format of the file?
                      >>>
                      >>> What have you tried so far?
                      >>>
                      >>> Nobody is going to write the script for you. The group is here to help
                      >>> you figure things out when you get stuck or something isn't working, but
                      >>> you're supposed to try something first.
                      >>>
                      >>>
                      >>>
                      >>> -----Original Message-----
                      >>> From: perl-beginner@yahoogroups.com
                      <mailto:perl-beginner%40yahoogroups.com>
                      > <mailto:perl-beginner%40yahoogroups.com>
                      > <mailto:perl-beginner%40yahoogroups.com>
                      >> <mailto:perl-beginner%40yahoogroups.com>
                      >>> [mailto:perl-beginner@yahoogroups.com
                      <mailto:perl-beginner%40yahoogroups.com>
                      > <mailto:perl-beginner%40yahoogroups.com>
                      > <mailto:perl-beginner%40yahoogroups.com>
                      >> <mailto:perl-beginner%40yahoogroups.com> ] On Behalf Of Kevin Patterson
                      >>> Sent: Wednesday, June 17, 2009 2:11 PM
                      >>> To: perl-beginner@yahoogroups.com
                      <mailto:perl-beginner%40yahoogroups.com>
                      > <mailto:perl-beginner%40yahoogroups.com>
                      > <mailto:perl-beginner%40yahoogroups.com>
                      > <mailto:perl-beginner%40yahoogroups.com>
                      >>
                      >>> Subject: [PBML] Newbie question
                      >>>
                      >>>
                      >>> Hello..
                      >>>
                      >>> I am writing a perl program in windows..
                      >>>
                      >>> Here is my problem.
                      >>>
                      >>> I have a file containing data such as:
                      >>>
                      >>> Apples
                      >>>
                      >>> Oranges
                      >>>
                      >>> Pears
                      >>>
                      >>> Bananas
                      >>>
                      >>> Plums
                      >>>
                      >>> Apples
                      >>>
                      >>> Oranges
                      >>>
                      >>> Pears
                      >>>
                      >>> bananas
                      >>>
                      >>> kiwi
                      >>>
                      >>> Apples
                      >>>
                      >>> Oranges
                      >>>
                      >>> Pears
                      >>>
                      >>> bananas
                      >>>
                      >>> I write a program to read this file and create a summary report showing
                      >>>
                      >>> How many apples:
                      >>>
                      >>> How many oranges
                      >>>
                      >>> How many Pears
                      >>>
                      >>> Can anyone help me??
                      >>>
                      >>> thanks
                      >>>
                      >>> [Non-text portions of this message have been removed]
                      >>>
                      >>> No virus found in this incoming message.
                      >>> Checked by AVG - www.avg.com
                      >>> Version: 8.5.374 / Virus Database: 270.12.73/2180 - Release Date:
                      >>> 06/17/09 05:53:00
                      >>>
                      >>> No virus found in this outgoing message.
                      >>> Checked by AVG - www.avg.com
                      >>> Version: 8.5.374 / Virus Database: 270.12.73/2180 - Release Date:
                      >>> 06/17/09 05:53:00
                      >>>
                      >>> [Non-text portions of this message have been removed]
                      >>>
                      >>> ------------------------------------
                      >>>
                      >>> Unsubscribing info is here:
                      >>> http://help.yahoo.com/help/us/groups/groups-32.htmlYahoo! Groups Links
                      >>>
                      >>>
                      >>
                      >> [Non-text portions of this message have been removed]
                      >>
                      >>
                      >
                      > [Non-text portions of this message have been removed]
                      >
                      > [Non-text portions of this message have been removed]
                      >
                      >





                      [Non-text portions of this message have been removed]
                    • Kevin Patterson
                      Hi, I am writing a perl program to call/ execute another windows program Using the system command. I am trying to get/print the results to see if the command
                      Message 10 of 29 , Jun 23, 2009
                      • 0 Attachment
                        Hi,



                        I am writing a perl program to call/ execute another windows program

                        Using the system command.



                        I am trying to get/print the results to see if the command worked.

                        Is there a way to capture the output of what the program ran??



                        I tried using system ' ' and system(). I get the same results.. nothing..



                        Here is my code so far.



                        #!/usr/bin/perl



                        # use strict;

                        # use warnings;





                        @client = qw(EM AS);



                        #@client = qw(EM HR KR AS BF DB);

                        my $eNV = "QW-D";

                        my $T = '"';



                        foreach $Client_Key (@client)

                        {



                        system 'CTMORDER -SCHEDTAB EM-$ENV-REPORT-LOGS -JOBNAME
                        EM-$ENV-$Client_Key-AAL-EMAIL -ODATE ODAT -FORCE Y';



                        print "Status: $? $!\n";

                        }



                        [Non-text portions of this message have been removed]
                      • Dan Stephenson
                        ... Try opening the the command with a piped file handle, like so... the below example will execute a given command and print the output to the screen (you
                        Message 11 of 29 , Jun 23, 2009
                        • 0 Attachment
                          Kevin Patterson wrote:
                          >
                          >
                          >
                          >
                          > Hi,
                          >
                          > I am writing a perl program to call/ execute another windows program
                          >
                          > Using the system command.
                          >
                          > I am trying to get/print the results to see if the command worked.
                          >
                          > Is there a way to capture the output of what the program ran??
                          >
                          > I tried using system ' ' and system(). I get the same results.. nothing..
                          >
                          > Here is my code so far.
                          >
                          > #!/usr/bin/perl
                          >
                          > # use strict;
                          >
                          > # use warnings;
                          >
                          > @client = qw(EM AS);
                          >
                          > #@client = qw(EM HR KR AS BF DB);
                          >
                          > my $eNV = "QW-D";
                          >
                          > my $T = '"';
                          >
                          > foreach $Client_Key (@client)
                          >
                          > {
                          >
                          > system 'CTMORDER -SCHEDTAB EM-$ENV-REPORT-LOGS -JOBNAME
                          > EM-$ENV-$Client_Key-AAL-EMAIL -ODATE ODAT -FORCE Y';
                          >
                          > print "Status: $? $!\n";
                          >
                          > }
                          >
                          > [Non-text portions of this message have been removed]
                          >
                          >

                          Try opening the the command with a piped file handle, like so... the
                          below example will execute a given command and print the output to the
                          screen (you could very well parse this output and do stuff with the
                          information)...

                          open my $command, "command |";

                          while (my $line = <$command>) {

                          print $line; # you could do other stuff with this...
                          }

                          close $command;




                          [Non-text portions of this message have been removed]
                        • Jeff Soules
                          Maybe the backtick operator ` `? (Backtick on my keyboard is the tilde key ~ without shift, but it might be different on your keyboard). ... You d do my
                          Message 12 of 29 , Jun 24, 2009
                          • 0 Attachment
                            Maybe the backtick operator ` `? (Backtick on my keyboard is the
                            tilde key ~ without shift, but it might be different on your
                            keyboard).

                            So in place of:

                            > system 'CTMORDER -SCHEDTAB EM-$ENV-REPORT-LOGS -JOBNAME
                            > EM-$ENV-$Client_Key-AAL-EMAIL -ODATE ODAT -FORCE Y';

                            You'd do

                            my $result = `CTMORDER -SCHEDTAB EM-$ENV-REPORT-LOGS -JOBNAME
                            EM-$ENV-$Client_Key-AAL-EMAIL -ODATE ODAT -FORCE Y`;

                            and then look in $result for whatever the other utility would normally
                            print on the screen.

                            $? is supposed to be set the same way for system() as for the backtick
                            operator, but maybe your other Windows program isn't returning a
                            status properly or something?

                            On Tue, Jun 23, 2009 at 9:33 PM, Kevin Patterson<kpatters@...> wrote:
                            >
                            >
                            >
                            >
                            > Hi,
                            >
                            > I am writing a perl program to call/ execute another windows program
                            >
                            > Using the system command.
                            >
                            > I am trying to get/print the results to see if the command worked.
                            >
                            > Is there a way to capture the output of what the program ran??
                            >
                            > I tried using system ' ' and system(). I get the same results.. nothing..
                            >
                            > Here is my code so far.
                            >
                            > #!/usr/bin/perl
                            >
                            > # use strict;
                            >
                            > # use warnings;
                            >
                            > @client = qw(EM AS);
                            >
                            > #@client = qw(EM HR KR AS BF DB);
                            >
                            > my $eNV = "QW-D";
                            >
                            > my $T = '"';
                            >
                            > foreach $Client_Key (@client)
                            >
                            > {
                            >
                            > system 'CTMORDER -SCHEDTAB EM-$ENV-REPORT-LOGS -JOBNAME
                            > EM-$ENV-$Client_Key-AAL-EMAIL -ODATE ODAT -FORCE Y';
                            >
                            > print "Status: $? $!\n";
                            >
                            > }
                            >
                            > [Non-text portions of this message have been removed]
                            >
                            >
                          • Kevin Patterson
                            I TRIED IT THIS WAY.. INCLUDING WITH THE BACK LASHES. But I still get nothing.. And I show nothing ran in task manager.. open my $command, e: BMC
                            Message 13 of 29 , Jun 24, 2009
                            • 0 Attachment
                              I TRIED IT THIS WAY.. INCLUDING WITH THE BACK LASHES. But I still get
                              nothing.. And I show nothing ran in task manager..



                              open my $command, "e:\BMC Software\CONTROL-M
                              Server\Ctm_server\Exe\CTMORDER.exe -SCHEDTAB EM-QW-D-REPORT-LOGS -JOBNAME
                              EM-QW-D-AS-AAL-EMAIL -ODATE ODAT -FORCE Y";



                              while (my $line = <$command>) {



                              print $line; # you could do other stuff with this...

                              }



                              close $command;



                              exit;



                              From: perl-beginner@yahoogroups.com [mailto:perl-beginner@yahoogroups.com]
                              On Behalf Of Jeff Soules
                              Sent: Wednesday, June 24, 2009 9:58 AM
                              To: perl-beginner@yahoogroups.com
                              Subject: Re: [PBML] Using System Command in Perl








                              Maybe the backtick operator ` `? (Backtick on my keyboard is the
                              tilde key ~ without shift, but it might be different on your
                              keyboard).

                              So in place of:

                              > system 'CTMORDER -SCHEDTAB EM-$ENV-REPORT-LOGS -JOBNAME
                              > EM-$ENV-$Client_Key-AAL-EMAIL -ODATE ODAT -FORCE Y';

                              You'd do

                              my $result = `CTMORDER -SCHEDTAB EM-$ENV-REPORT-LOGS -JOBNAME
                              EM-$ENV-$Client_Key-AAL-EMAIL -ODATE ODAT -FORCE Y`;

                              and then look in $result for whatever the other utility would normally
                              print on the screen.

                              $? is supposed to be set the same way for system() as for the backtick
                              operator, but maybe your other Windows program isn't returning a
                              status properly or something?

                              On Tue, Jun 23, 2009 at 9:33 PM, Kevin Patterson<kpatters@...
                              <mailto:kpatters%40berkeley.edu> > wrote:
                              >
                              >
                              >
                              >
                              > Hi,
                              >
                              > I am writing a perl program to call/ execute another windows program
                              >
                              > Using the system command.
                              >
                              > I am trying to get/print the results to see if the command worked.
                              >
                              > Is there a way to capture the output of what the program ran??
                              >
                              > I tried using system ' ' and system(). I get the same results.. nothing..
                              >
                              > Here is my code so far.
                              >
                              > #!/usr/bin/perl
                              >
                              > # use strict;
                              >
                              > # use warnings;
                              >
                              > @client = qw(EM AS);
                              >
                              > #@client = qw(EM HR KR AS BF DB);
                              >
                              > my $eNV = "QW-D";
                              >
                              > my $T = '"';
                              >
                              > foreach $Client_Key (@client)
                              >
                              > {
                              >
                              > system 'CTMORDER -SCHEDTAB EM-$ENV-REPORT-LOGS -JOBNAME
                              > EM-$ENV-$Client_Key-AAL-EMAIL -ODATE ODAT -FORCE Y';
                              >
                              > print "Status: $? $!\n";
                              >
                              > }
                              >
                              > [Non-text portions of this message have been removed]
                              >
                              >





                              [Non-text portions of this message have been removed]
                            • vishal thakur
                              When executing this command, don t forget to redirect the STDERR to STDIO, else you won t be able to figure out the reason why command has failed, so i will
                              Message 14 of 29 , Jun 25, 2009
                              • 0 Attachment
                                When executing this command, don't forget to redirect the STDERR to STDIO,
                                else you won't be able to figure out the reason why command has failed, so i
                                will suggest following
                                my $result = `CTMORDER -SCHEDTAB EM-$ENV-REPORT-LOGS -JOBNAME
                                EM-$ENV-$Client_Key-AAL-EMAIL -ODATE ODAT -FORCE Y 2>&1`;

                                so result will hold any output message or error message and to know the
                                status of the command just echo "$?"

                                On Wed, Jun 24, 2009 at 10:27 PM, Jeff Soules <soules@...> wrote:

                                >
                                >
                                > Maybe the backtick operator ` `? (Backtick on my keyboard is the
                                > tilde key ~ without shift, but it might be different on your
                                > keyboard).
                                >
                                > So in place of:
                                >
                                >
                                > > system 'CTMORDER -SCHEDTAB EM-$ENV-REPORT-LOGS -JOBNAME
                                > > EM-$ENV-$Client_Key-AAL-EMAIL -ODATE ODAT -FORCE Y';
                                >
                                > You'd do
                                >
                                > my $result = `CTMORDER -SCHEDTAB EM-$ENV-REPORT-LOGS -JOBNAME
                                > EM-$ENV-$Client_Key-AAL-EMAIL -ODATE ODAT -FORCE Y`;
                                >
                                > and then look in $result for whatever the other utility would normally
                                > print on the screen.
                                >
                                > $? is supposed to be set the same way for system() as for the backtick
                                > operator, but maybe your other Windows program isn't returning a
                                > status properly or something?
                                >
                                > On Tue, Jun 23, 2009 at 9:33 PM, Kevin Patterson<kpatters@...<kpatters%40berkeley.edu>>
                                > wrote:
                                > >
                                > >
                                > >
                                > >
                                > > Hi,
                                > >
                                > > I am writing a perl program to call/ execute another windows program
                                > >
                                > > Using the system command.
                                > >
                                > > I am trying to get/print the results to see if the command worked.
                                > >
                                > > Is there a way to capture the output of what the program ran??
                                > >
                                > > I tried using system ' ' and system(). I get the same results.. nothing..
                                > >
                                > > Here is my code so far.
                                > >
                                > > #!/usr/bin/perl
                                > >
                                > > # use strict;
                                > >
                                > > # use warnings;
                                > >
                                > > @client = qw(EM AS);
                                > >
                                > > #@client = qw(EM HR KR AS BF DB);
                                > >
                                > > my $eNV = "QW-D";
                                > >
                                > > my $T = '"';
                                > >
                                > > foreach $Client_Key (@client)
                                > >
                                > > {
                                > >
                                > > system 'CTMORDER -SCHEDTAB EM-$ENV-REPORT-LOGS -JOBNAME
                                > > EM-$ENV-$Client_Key-AAL-EMAIL -ODATE ODAT -FORCE Y';
                                > >
                                > > print "Status: $? $!\n";
                                > >
                                > > }
                                > >
                                > > [Non-text portions of this message have been removed]
                                > >
                                > >
                                >
                                >



                                --
                                Regards
                                Vishal Thakur
                                +919923206953


                                [Non-text portions of this message have been removed]
                              • Shlomi Fish
                                ... In that case, make sure you use String-ShellQuote: http://search.cpan.org/dist/String-ShellQuote/ Alternatively use open -| , @list which is only
                                Message 15 of 29 , Jun 25, 2009
                                • 0 Attachment
                                  On Wednesday 24 June 2009 19:57:50 Jeff Soules wrote:
                                  > Maybe the backtick operator ` `? (Backtick on my keyboard is the
                                  > tilde key ~ without shift, but it might be different on your
                                  > keyboard).
                                  >
                                  > So in place of:
                                  > > system 'CTMORDER -SCHEDTAB EM-$ENV-REPORT-LOGS -JOBNAME
                                  > > EM-$ENV-$Client_Key-AAL-EMAIL -ODATE ODAT -FORCE Y';
                                  >
                                  > You'd do
                                  >
                                  > my $result = `CTMORDER -SCHEDTAB EM-$ENV-REPORT-LOGS -JOBNAME
                                  > EM-$ENV-$Client_Key-AAL-EMAIL -ODATE ODAT -FORCE Y`;
                                  >

                                  In that case, make sure you use String-ShellQuote:

                                  http://search.cpan.org/dist/String-ShellQuote/

                                  Alternatively use open '-|', @list which is only available on Windows.

                                  Regards,

                                  Shlomi Fish

                                  > and then look in $result for whatever the other utility would normally
                                  > print on the screen.
                                  >
                                  > $? is supposed to be set the same way for system() as for the backtick
                                  > operator, but maybe your other Windows program isn't returning a
                                  > status properly or something?
                                  >
                                  > On Tue, Jun 23, 2009 at 9:33 PM, Kevin Patterson<kpatters@...>
                                  wrote:
                                  > > Hi,
                                  > >
                                  > > I am writing a perl program to call/ execute another windows program
                                  > >
                                  > > Using the system command.
                                  > >
                                  > > I am trying to get/print the results to see if the command worked.
                                  > >
                                  > > Is there a way to capture the output of what the program ran??
                                  > >
                                  > > I tried using system ' ' and system(). I get the same results.. nothing..
                                  > >
                                  > > Here is my code so far.
                                  > >
                                  > > #!/usr/bin/perl
                                  > >
                                  > > # use strict;
                                  > >
                                  > > # use warnings;
                                  > >
                                  > > @client = qw(EM AS);
                                  > >
                                  > > #@client = qw(EM HR KR AS BF DB);
                                  > >
                                  > > my $eNV = "QW-D";
                                  > >
                                  > > my $T = '"';
                                  > >
                                  > > foreach $Client_Key (@client)
                                  > >
                                  > > {
                                  > >
                                  > > system 'CTMORDER -SCHEDTAB EM-$ENV-REPORT-LOGS -JOBNAME
                                  > > EM-$ENV-$Client_Key-AAL-EMAIL -ODATE ODAT -FORCE Y';
                                  > >
                                  > > print "Status: $? $!\n";
                                  > >
                                  > > }
                                  > >
                                  > > [Non-text portions of this message have been removed]

                                  --
                                  -----------------------------------------------------------------
                                  Shlomi Fish http://www.shlomifish.org/
                                  Freecell Solver - http://fc-solve.berlios.de/

                                  God gave us two eyes and ten fingers so we will type five times as much as we
                                  read.
                                Your message has been successfully submitted and would be delivered to recipients shortly.