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

Expand Messages
  • medura43
    At the moment, I am trying to get a handle in writing associative HASH array. I think I got that part of my script correct, however I have added a part in my
    Message 1 of 20 , Sep 27, 2011
    • 0 Attachment
      At the moment, I am trying to get a handle in writing associative HASH array.

      I think I got that part of my script correct, however I have added a part in my script to prompt me for a key so that I can recall parts of the hash.

      So I wrote the following:

      print "Which device file do you want\n"
      my $name = <STDIN>;
      chomp;
      print "The value is $name \n";

      When I type in my response, it appears to be waiting. Not sure what the issue would be. I am starting to think that it may be some sort of memory issue.

      Does anyone have any ideas?

      cheers

      ps: I know my script writing still requiries a lot of improvement.
    • Alan Haggai Alavi
      Hello, ... The script that you posted has a missing semicolon after the first print statement. `chomp` without any arguments chomps the `$_` variable. However,
      Message 2 of 20 , Sep 27, 2011
      • 0 Attachment
        Hello,

        On 09/27/11 15:39, medura43 wrote:
        > print "Which device file do you want\n"
        > my $name = <STDIN>;
        > chomp;
        > print "The value is $name \n";
        >
        > When I type in my response, it appears to be waiting. Not sure what
        > the issue would be. I am starting to think that it may be some sort
        > of memory issue.
        >
        > Does anyone have any ideas?

        The script that you posted has a missing semicolon after the first print
        statement. `chomp` without any arguments chomps the `$_` variable.
        However, the input is in `$name`. `chomp($name)` or `chomp( my $name =
        <STDIN> )` shall be used instead.

        Revised program:

        use strict;
        use warnings;

        print "Which device file do you want?\n";
        chomp( my $name = <STDIN> );
        print "The value is '$name'.\n";

        Regards,
        Alan Haggai Alavi.
        --
        The difference makes the difference.
      • medura43
        Thanks for your quick reply, that was my mistake when I retyped it in the post. My original script has the ; colon. I have found sites that talk about adding
        Message 3 of 20 , Sep 27, 2011
        • 0 Attachment
          Thanks for your quick reply, that was my mistake when I retyped it in the post. My original script has the ; colon.

          I have found sites that talk about adding $|; before the <STDIN>. But this does not appear to make any difference.

          I have now included the use strict statement in my script.

          --- In perl-beginner@yahoogroups.com, Alan Haggai Alavi <alanhaggai@...> wrote:
          >
          > Hello,
          >
          > On 09/27/11 15:39, medura43 wrote:
          > > print "Which device file do you want\n"
          > > my $name = <STDIN>;
          > > chomp;
          > > print "The value is $name \n";
          > >
          > > When I type in my response, it appears to be waiting. Not sure what
          > > the issue would be. I am starting to think that it may be some sort
          > > of memory issue.
          > >
          > > Does anyone have any ideas?
          >
          > The script that you posted has a missing semicolon after the first print
          > statement. `chomp` without any arguments chomps the `$_` variable.
          > However, the input is in `$name`. `chomp($name)` or `chomp( my $name =
          > <STDIN> )` shall be used instead.
          >
          > Revised program:
          >
          > use strict;
          > use warnings;
          >
          > print "Which device file do you want?\n";
          > chomp( my $name = <STDIN> );
          > print "The value is '$name'.\n";
          >
          > Regards,
          > Alan Haggai Alavi.
          > --
          > The difference makes the difference.
          >
        • merlyn@stonehenge.com
          ... medura43 Thanks for your quick reply, that was my mistake when I medura43 retyped it in the post. My original script has the ; colon. I medura43 have
          Message 4 of 20 , Sep 27, 2011
          • 0 Attachment
            >>>>> "medura43" == medura43 <medura43@...> writes:

            medura43> Thanks for your quick reply, that was my mistake when I
            medura43> retyped it in the post. My original script has the ; colon. I
            medura43> have found sites that talk about adding $|; before the
            medura43> <STDIN>. But this does not appear to make any difference.

            For any modern Perl, you won't need that $|. You didn't mention
            platform. Also, don't retype your program... paste it. Every piece of
            punctuation matters, and it frustrates the person trying to help you
            that they aren't looking at your actual code.

            Also, keep in mind:

            **************************************************
            *
            * THIS IS NOT THE OFFICIAL perl BEGINNERS GROUP.
            *
            * The official one is at beginners@..., with instructions on how to
            * join at http://lists.perl.org/list/beginners.html.
            *
            * You'll get far better response there, not to say you won't get *any* here.
            *
            **************************************************

            --
            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.posterous.com/ for Smalltalk discussion
          • Rajagopal, Jay
            If you are not able to understand $| ie flush STDOUT buffer , it means, you do not know any programming language and need to read books. Don t take me wrong,
            Message 5 of 20 , Sep 27, 2011
            • 0 Attachment
              If you are not able to understand $| ie "flush STDOUT buffer", it means, you do not know any programming language and need to read books.

              Don't take me wrong, I knew all these things, databases and still was jobless and my first salary was, hold your breath, 15 cents an hour.

              I see some Indian programmers getting 100 times my salary than I got, but still asking elementary questions.

              Thanks
              jay

              -----Original Message-----
              From: perl-beginner@yahoogroups.com [mailto:perl-beginner@yahoogroups.com] On Behalf Of medura43
              Sent: Tuesday, September 27, 2011 9:07 AM
              To: perl-beginner@yahoogroups.com
              Subject: Re: [PBML] <STDIN>

              Thanks for your quick reply, that was my mistake when I retyped it in the post. My original script has the ; colon.

              I have found sites that talk about adding $|; before the <STDIN>. But this does not appear to make any difference.

              I have now included the use strict statement in my script.

              --- In perl-beginner@yahoogroups.com, Alan Haggai Alavi <alanhaggai@...> wrote:
              >
              > Hello,
              >
              > On 09/27/11 15:39, medura43 wrote:
              > > print "Which device file do you want\n"
              > > my $name = <STDIN>;
              > > chomp;
              > > print "The value is $name \n";
              > >
              > > When I type in my response, it appears to be waiting. Not sure what
              > > the issue would be. I am starting to think that it may be some sort
              > > of memory issue.
              > >
              > > Does anyone have any ideas?
              >
              > The script that you posted has a missing semicolon after the first
              > print statement. `chomp` without any arguments chomps the `$_` variable.
              > However, the input is in `$name`. `chomp($name)` or `chomp( my $name =
              > <STDIN> )` shall be used instead.
              >
              > Revised program:
              >
              > use strict;
              > use warnings;
              >
              > print "Which device file do you want?\n";
              > chomp( my $name = <STDIN> );
              > print "The value is '$name'.\n";
              >
              > Regards,
              > Alan Haggai Alavi.
              > --
              > The difference makes the difference.
              >




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

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




              T. Rowe Price (including T. Rowe Price Group, Inc. and its affiliates) and its associates do not provide legal or tax advice. Any tax-related discussion contained in this e-mail, including any attachments, is not intended or written to be used, and cannot be used, for the purpose of (i) avoiding any tax penalties or (ii) promoting, marketing, or recommending to any other party any transaction or matter addressed herein. Please consult your independent legal counsel and/or professional tax advisor regarding any legal or tax issues raised in this e-mail.

              The contents of this e-mail and any attachments are intended solely for the use of the named addressee(s) and may contain confidential and/or privileged information. Any unauthorized use, copying, disclosure, or distribution of the contents of this e-mail is strictly prohibited by the sender and may be unlawful. If you are not the intended recipient, please notify the sender immediately and delete this e-mail.
            • Amish Husain
              you are mising a ; on your script   print Which device file do you want n ; my $name = ; chomp; print The value is $name n ;   it runs for me after
              Message 6 of 20 , Sep 27, 2011
              • 0 Attachment
                you are mising a ; on your script
                 
                print "Which device file do you want\n";
                my $name = <STDIN>;
                chomp;
                print "The value is $name \n";

                 
                it runs for me after adding a ";"
                Make sure you press "Enter" after the input...
                 
                 
                 perl test.pl
                Which device file do you want
                amish
                The value is amish
                 

                From: medura43 <medura43@...>
                To: perl-beginner@yahoogroups.com
                Sent: Tuesday, September 27, 2011 6:09 AM
                Subject: [PBML] <STDIN>


                 
                At the moment, I am trying to get a handle in writing associative HASH array.

                I think I got that part of my script correct, however I have added a part in my script to prompt me for a key so that I can recall parts of the hash.

                So I wrote the following:

                print "Which device file do you want\n"
                my $name = <STDIN>;
                chomp;
                print "The value is $name \n";

                When I type in my response, it appears to be waiting. Not sure what the issue would be. I am starting to think that it may be some sort of memory issue.

                Does anyone have any ideas?

                cheers

                ps: I know my script writing still requiries a lot of improvement.




                [Non-text portions of this message have been removed]
              • Shawn H Corey
                ... You have to press ENTER after you type the response. -- Just my 0.00000002 million dollars worth, Shawn Confusion is the first step of understanding.
                Message 7 of 20 , Sep 27, 2011
                • 0 Attachment
                  On 11-09-27 06:09 AM, medura43 wrote:
                  > When I type in my response, it appears to be waiting.

                  You have to press ENTER after you type the response.


                  --
                  Just my 0.00000002 million dollars worth,
                  Shawn

                  Confusion is the first step of understanding.

                  Programming is as much about organization and communication
                  as it is about coding.

                  The secret to great software: Fail early & often.

                  Eliminate software piracy: use only FLOSS.

                  "Make something worthwhile." -- Dear Hunter
                • medura43
                  All good, thats why I joined this group. Yes and I did press after I typed in my answer. appreciate all comments.:) Heading off now, but I hope to
                  Message 8 of 20 , Sep 27, 2011
                  • 0 Attachment
                    All good, thats why I joined this group. Yes and I did press <enter> after I typed in my answer.

                    appreciate all comments.:)

                    Heading off now, but I hope to catch up with you all tomorrow. Thanks everybody for your input.


                    --- In perl-beginner@yahoogroups.com, "Rajagopal, Jay" <jay_rajagopal@...> wrote:
                    >
                    > If you are not able to understand $| ie "flush STDOUT buffer", it means, you do not know any programming language and need to read books.
                    >
                    > Don't take me wrong, I knew all these things, databases and still was jobless and my first salary was, hold your breath, 15 cents an hour.
                    >
                    > I see some Indian programmers getting 100 times my salary than I got, but still asking elementary questions.
                    >
                    > Thanks
                    > jay
                    >
                    > -----Original Message-----
                    > From: perl-beginner@yahoogroups.com [mailto:perl-beginner@yahoogroups.com] On Behalf Of medura43
                    > Sent: Tuesday, September 27, 2011 9:07 AM
                    > To: perl-beginner@yahoogroups.com
                    > Subject: Re: [PBML] <STDIN>
                    >
                    > Thanks for your quick reply, that was my mistake when I retyped it in the post. My original script has the ; colon.
                    >
                    > I have found sites that talk about adding $|; before the <STDIN>. But this does not appear to make any difference.
                    >
                    > I have now included the use strict statement in my script.
                    >
                    > --- In perl-beginner@yahoogroups.com, Alan Haggai Alavi <alanhaggai@> wrote:
                    > >
                    > > Hello,
                    > >
                    > > On 09/27/11 15:39, medura43 wrote:
                    > > > print "Which device file do you want\n"
                    > > > my $name = <STDIN>;
                    > > > chomp;
                    > > > print "The value is $name \n";
                    > > >
                    > > > When I type in my response, it appears to be waiting. Not sure what
                    > > > the issue would be. I am starting to think that it may be some sort
                    > > > of memory issue.
                    > > >
                    > > > Does anyone have any ideas?
                    > >
                    > > The script that you posted has a missing semicolon after the first
                    > > print statement. `chomp` without any arguments chomps the `$_` variable.
                    > > However, the input is in `$name`. `chomp($name)` or `chomp( my $name =
                    > > <STDIN> )` shall be used instead.
                    > >
                    > > Revised program:
                    > >
                    > > use strict;
                    > > use warnings;
                    > >
                    > > print "Which device file do you want?\n";
                    > > chomp( my $name = <STDIN> );
                    > > print "The value is '$name'.\n";
                    > >
                    > > Regards,
                    > > Alan Haggai Alavi.
                    > > --
                    > > The difference makes the difference.
                    > >
                    >
                    >
                    >
                    >
                    > ------------------------------------
                    >
                    > Unsubscribing info is here: http://help.yahoo.com/help/us/groups/groups-32.htmlYahoo! Groups Links
                    >
                    >
                    >
                    >
                    > T. Rowe Price (including T. Rowe Price Group, Inc. and its affiliates) and its associates do not provide legal or tax advice. Any tax-related discussion contained in this e-mail, including any attachments, is not intended or written to be used, and cannot be used, for the purpose of (i) avoiding any tax penalties or (ii) promoting, marketing, or recommending to any other party any transaction or matter addressed herein. Please consult your independent legal counsel and/or professional tax advisor regarding any legal or tax issues raised in this e-mail.
                    >
                    > The contents of this e-mail and any attachments are intended solely for the use of the named addressee(s) and may contain confidential and/or privileged information. Any unauthorized use, copying, disclosure, or distribution of the contents of this e-mail is strictly prohibited by the sender and may be unlawful. If you are not the intended recipient, please notify the sender immediately and delete this e-mail.
                    >
                  • medura43
                    Here is my script. It is running on Redhat 4.9 perl 5.8.5. Since adding the strict statement, I am getting a few more errors. Particularly around this
                    Message 9 of 20 , Sep 27, 2011
                    • 0 Attachment
                      Here is my script. It is running on Redhat 4.9 perl 5.8.5. Since adding the strict statement, I am getting a few more errors. Particularly around this statement.

                      (my $agile, my $legacy) = split(/\s+/, my $device);
                      my $legacy{my $agile} = my $legacy;

                      __________________________________________________________

                      !/usr/bin/perl
                      use strict;
                      use warnings;

                      open(CMD,"<lvmtab.txt");
                      undef($/); # Slurps in the lvmtab.txt into the array

                      while (<CMD>) {
                      my @device = (split/[\n]/);
                      }

                      foreach my $device (my @device) {
                      (my $agile, my $legacy) = split(/\s+/, my $device);
                      my $legacy{my $agile} = my $legacy;
                      }

                      $legacy = (keys my %legacy);

                      foreach $agile (keys %legacy) {
                      print "$agile:\t$legacy{$agile}\n";
                      }
                      $|=1;
                      print "Which device file do you want\n "; # Test to find out why it
                      chomp(my $name = <STDIN>); # hangs
                      print "The value is $name \n";

                      $hash_len = keys %legacy; # Number of lines in a hash

                      print "The following elements\n";
                      print "$agile --> $legacy{$agile} $hash_len\n";
                      close CMD;


                      --- In perl-beginner@yahoogroups.com, "medura43" <medura43@...> wrote:
                      >
                      > All good, thats why I joined this group. Yes and I did press <enter> after I typed in my answer.
                      >
                      > appreciate all comments.:)
                      >
                      > Heading off now, but I hope to catch up with you all tomorrow. Thanks everybody for your input.
                      >
                      >
                      > --- In perl-beginner@yahoogroups.com, "Rajagopal, Jay" <jay_rajagopal@> wrote:
                      > >
                      > > If you are not able to understand $| ie "flush STDOUT buffer", it means, you do not know any programming language and need to read books.
                      > >
                      > > Don't take me wrong, I knew all these things, databases and still was jobless and my first salary was, hold your breath, 15 cents an hour.
                      > >
                      > > I see some Indian programmers getting 100 times my salary than I got, but still asking elementary questions.
                      > >
                      > > Thanks
                      > > jay
                      > >
                      > > -----Original Message-----
                      > > From: perl-beginner@yahoogroups.com [mailto:perl-beginner@yahoogroups.com] On Behalf Of medura43
                      > > Sent: Tuesday, September 27, 2011 9:07 AM
                      > > To: perl-beginner@yahoogroups.com
                      > > Subject: Re: [PBML] <STDIN>
                      > >
                      > > Thanks for your quick reply, that was my mistake when I retyped it in the post. My original script has the ; colon.
                      > >
                      > > I have found sites that talk about adding $|; before the <STDIN>. But this does not appear to make any difference.
                      > >
                      > > I have now included the use strict statement in my script.
                      > >
                      > > --- In perl-beginner@yahoogroups.com, Alan Haggai Alavi <alanhaggai@> wrote:
                      > > >
                      > > > Hello,
                      > > >
                      > > > On 09/27/11 15:39, medura43 wrote:
                      > > > > print "Which device file do you want\n"
                      > > > > my $name = <STDIN>;
                      > > > > chomp;
                      > > > > print "The value is $name \n";
                      > > > >
                      > > > > When I type in my response, it appears to be waiting. Not sure what
                      > > > > the issue would be. I am starting to think that it may be some sort
                      > > > > of memory issue.
                      > > > >
                      > > > > Does anyone have any ideas?
                      > > >
                      > > > The script that you posted has a missing semicolon after the first
                      > > > print statement. `chomp` without any arguments chomps the `$_` variable.
                      > > > However, the input is in `$name`. `chomp($name)` or `chomp( my $name =
                      > > > <STDIN> )` shall be used instead.
                      > > >
                      > > > Revised program:
                      > > >
                      > > > use strict;
                      > > > use warnings;
                      > > >
                      > > > print "Which device file do you want?\n";
                      > > > chomp( my $name = <STDIN> );
                      > > > print "The value is '$name'.\n";
                      > > >
                      > > > Regards,
                      > > > Alan Haggai Alavi.
                      > > > --
                      > > > The difference makes the difference.
                      > > >
                      > >
                      > >
                      > >
                      > >
                      > > ------------------------------------
                      > >
                      > > Unsubscribing info is here: http://help.yahoo.com/help/us/groups/groups-32.htmlYahoo! Groups Links
                      > >
                      > >
                      > >
                      > >
                      > > T. Rowe Price (including T. Rowe Price Group, Inc. and its affiliates) and its associates do not provide legal or tax advice. Any tax-related discussion contained in this e-mail, including any attachments, is not intended or written to be used, and cannot be used, for the purpose of (i) avoiding any tax penalties or (ii) promoting, marketing, or recommending to any other party any transaction or matter addressed herein. Please consult your independent legal counsel and/or professional tax advisor regarding any legal or tax issues raised in this e-mail.
                      > >
                      > > The contents of this e-mail and any attachments are intended solely for the use of the named addressee(s) and may contain confidential and/or privileged information. Any unauthorized use, copying, disclosure, or distribution of the contents of this e-mail is strictly prohibited by the sender and may be unlawful. If you are not the intended recipient, please notify the sender immediately and delete this e-mail.
                      > >
                      >
                    • Rajagopal, Jay
                      Don t use strict. It is not a good practice at your level. Thanks jay ... From: perl-beginner@yahoogroups.com [mailto:perl-beginner@yahoogroups.com] On Behalf
                      Message 10 of 20 , Sep 27, 2011
                      • 0 Attachment
                        Don't use strict. It is not a good practice at your level.
                        Thanks
                        jay

                        -----Original Message-----
                        From: perl-beginner@yahoogroups.com [mailto:perl-beginner@yahoogroups.com] On Behalf Of medura43
                        Sent: Tuesday, September 27, 2011 4:46 PM
                        To: perl-beginner@yahoogroups.com
                        Subject: Re: [PBML] <STDIN>

                        Here is my script. It is running on Redhat 4.9 perl 5.8.5. Since adding the strict statement, I am getting a few more errors. Particularly around this statement.

                        (my $agile, my $legacy) = split(/\s+/, my $device);
                        my $legacy{my $agile} = my $legacy;

                        __________________________________________________________

                        !/usr/bin/perl
                        use strict;
                        use warnings;

                        open(CMD,"<lvmtab.txt");
                        undef($/); # Slurps in the lvmtab.txt into the array

                        while (<CMD>) {
                        my @device = (split/[\n]/);
                        }

                        foreach my $device (my @device) {
                        (my $agile, my $legacy) = split(/\s+/, my $device);
                        my $legacy{my $agile} = my $legacy;
                        }

                        $legacy = (keys my %legacy);

                        foreach $agile (keys %legacy) {
                        print "$agile:\t$legacy{$agile}\n";
                        }
                        $|=1;
                        print "Which device file do you want\n "; # Test to find out why it
                        chomp(my $name = <STDIN>); # hangs
                        print "The value is $name \n";

                        $hash_len = keys %legacy; # Number of lines in a hash

                        print "The following elements\n";
                        print "$agile --> $legacy{$agile} $hash_len\n"; close CMD;


                        --- In perl-beginner@yahoogroups.com, "medura43" <medura43@...> wrote:
                        >
                        > All good, thats why I joined this group. Yes and I did press <enter> after I typed in my answer.
                        >
                        > appreciate all comments.:)
                        >
                        > Heading off now, but I hope to catch up with you all tomorrow. Thanks everybody for your input.
                        >
                        >
                        > --- In perl-beginner@yahoogroups.com, "Rajagopal, Jay" <jay_rajagopal@> wrote:
                        > >
                        > > If you are not able to understand $| ie "flush STDOUT buffer", it means, you do not know any programming language and need to read books.
                        > >
                        > > Don't take me wrong, I knew all these things, databases and still was jobless and my first salary was, hold your breath, 15 cents an hour.
                        > >
                        > > I see some Indian programmers getting 100 times my salary than I got, but still asking elementary questions.
                        > >
                        > > Thanks
                        > > jay
                        > >
                        > > -----Original Message-----
                        > > From: perl-beginner@yahoogroups.com
                        > > [mailto:perl-beginner@yahoogroups.com] On Behalf Of medura43
                        > > Sent: Tuesday, September 27, 2011 9:07 AM
                        > > To: perl-beginner@yahoogroups.com
                        > > Subject: Re: [PBML] <STDIN>
                        > >
                        > > Thanks for your quick reply, that was my mistake when I retyped it in the post. My original script has the ; colon.
                        > >
                        > > I have found sites that talk about adding $|; before the <STDIN>. But this does not appear to make any difference.
                        > >
                        > > I have now included the use strict statement in my script.
                        > >
                        > > --- In perl-beginner@yahoogroups.com, Alan Haggai Alavi <alanhaggai@> wrote:
                        > > >
                        > > > Hello,
                        > > >
                        > > > On 09/27/11 15:39, medura43 wrote:
                        > > > > print "Which device file do you want\n"
                        > > > > my $name = <STDIN>;
                        > > > > chomp;
                        > > > > print "The value is $name \n";
                        > > > >
                        > > > > When I type in my response, it appears to be waiting. Not sure
                        > > > what
                        > > > > the issue would be. I am starting to think that it may be some
                        > > > > sort of memory issue.
                        > > > >
                        > > > > Does anyone have any ideas?
                        > > >
                        > > > The script that you posted has a missing semicolon after the first
                        > > > print statement. `chomp` without any arguments chomps the `$_` variable.
                        > > > However, the input is in `$name`. `chomp($name)` or `chomp( my
                        > > > $name = <STDIN> )` shall be used instead.
                        > > >
                        > > > Revised program:
                        > > >
                        > > > use strict;
                        > > > use warnings;
                        > > >
                        > > > print "Which device file do you want?\n";
                        > > > chomp( my $name = <STDIN> );
                        > > > print "The value is '$name'.\n";
                        > > >
                        > > > Regards,
                        > > > Alan Haggai Alavi.
                        > > > --
                        > > > The difference makes the difference.
                        > > >
                        > >
                        > >
                        > >
                        > >
                        > > ------------------------------------
                        > >
                        > > Unsubscribing info is here:
                        > > http://help.yahoo.com/help/us/groups/groups-32.htmlYahoo! Groups
                        > > Links
                        > >
                        > >
                        > >
                        > >
                        > > T. Rowe Price (including T. Rowe Price Group, Inc. and its affiliates) and its associates do not provide legal or tax advice. Any tax-related discussion contained in this e-mail, including any attachments, is not intended or written to be used, and cannot be used, for the purpose of (i) avoiding any tax penalties or (ii) promoting, marketing, or recommending to any other party any transaction or matter addressed herein. Please consult your independent legal counsel and/or professional tax advisor regarding any legal or tax issues raised in this e-mail.
                        > >
                        > > The contents of this e-mail and any attachments are intended solely for the use of the named addressee(s) and may contain confidential and/or privileged information. Any unauthorized use, copying, disclosure, or distribution of the contents of this e-mail is strictly prohibited by the sender and may be unlawful. If you are not the intended recipient, please notify the sender immediately and delete this e-mail.
                        > >
                        >




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

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




                        T. Rowe Price (including T. Rowe Price Group, Inc. and its affiliates) and its associates do not provide legal or tax advice. Any tax-related discussion contained in this e-mail, including any attachments, is not intended or written to be used, and cannot be used, for the purpose of (i) avoiding any tax penalties or (ii) promoting, marketing, or recommending to any other party any transaction or matter addressed herein. Please consult your independent legal counsel and/or professional tax advisor regarding any legal or tax issues raised in this e-mail.

                        The contents of this e-mail and any attachments are intended solely for the use of the named addressee(s) and may contain confidential and/or privileged information. Any unauthorized use, copying, disclosure, or distribution of the contents of this e-mail is strictly prohibited by the sender and may be unlawful. If you are not the intended recipient, please notify the sender immediately and delete this e-mail.
                      • Rajagopal, Jay
                        foreach my $device ( @device) { (my $agile, my $legacy) = split(/ s+/, $device); Try the above. ... From: perl-beginner@yahoogroups.com
                        Message 11 of 20 , Sep 27, 2011
                        • 0 Attachment
                          foreach my $device ( @device) {
                          (my $agile, my $legacy) = split(/\s+/, $device);
                          Try the above.
                          -----Original Message-----
                          From: perl-beginner@yahoogroups.com [mailto:perl-beginner@yahoogroups.com] On Behalf Of medura43
                          Sent: Tuesday, September 27, 2011 4:46 PM
                          To: perl-beginner@yahoogroups.com
                          Subject: Re: [PBML] <STDIN>

                          Here is my script. It is running on Redhat 4.9 perl 5.8.5. Since adding the strict statement, I am getting a few more errors. Particularly around this statement.

                          (my $agile, my $legacy) = split(/\s+/, my $device);
                          my $legacy{my $agile} = my $legacy;

                          __________________________________________________________

                          !/usr/bin/perl
                          use strict;
                          use warnings;

                          open(CMD,"<lvmtab.txt");
                          undef($/); # Slurps in the lvmtab.txt into the array

                          while (<CMD>) {
                          my @device = (split/[\n]/);
                          }

                          foreach my $device (my @device) {
                          (my $agile, my $legacy) = split(/\s+/, my $device);
                          my $legacy{my $agile} = my $legacy;
                          }

                          $legacy = (keys my %legacy);

                          foreach $agile (keys %legacy) {
                          print "$agile:\t$legacy{$agile}\n";
                          }
                          $|=1;
                          print "Which device file do you want\n "; # Test to find out why it
                          chomp(my $name = <STDIN>); # hangs
                          print "The value is $name \n";

                          $hash_len = keys %legacy; # Number of lines in a hash

                          print "The following elements\n";
                          print "$agile --> $legacy{$agile} $hash_len\n"; close CMD;


                          --- In perl-beginner@yahoogroups.com, "medura43" <medura43@...> wrote:
                          >
                          > All good, thats why I joined this group. Yes and I did press <enter> after I typed in my answer.
                          >
                          > appreciate all comments.:)
                          >
                          > Heading off now, but I hope to catch up with you all tomorrow. Thanks everybody for your input.
                          >
                          >
                          > --- In perl-beginner@yahoogroups.com, "Rajagopal, Jay" <jay_rajagopal@> wrote:
                          > >
                          > > If you are not able to understand $| ie "flush STDOUT buffer", it means, you do not know any programming language and need to read books.
                          > >
                          > > Don't take me wrong, I knew all these things, databases and still was jobless and my first salary was, hold your breath, 15 cents an hour.
                          > >
                          > > I see some Indian programmers getting 100 times my salary than I got, but still asking elementary questions.
                          > >
                          > > Thanks
                          > > jay
                          > >
                          > > -----Original Message-----
                          > > From: perl-beginner@yahoogroups.com
                          > > [mailto:perl-beginner@yahoogroups.com] On Behalf Of medura43
                          > > Sent: Tuesday, September 27, 2011 9:07 AM
                          > > To: perl-beginner@yahoogroups.com
                          > > Subject: Re: [PBML] <STDIN>
                          > >
                          > > Thanks for your quick reply, that was my mistake when I retyped it in the post. My original script has the ; colon.
                          > >
                          > > I have found sites that talk about adding $|; before the <STDIN>. But this does not appear to make any difference.
                          > >
                          > > I have now included the use strict statement in my script.
                          > >
                          > > --- In perl-beginner@yahoogroups.com, Alan Haggai Alavi <alanhaggai@> wrote:
                          > > >
                          > > > Hello,
                          > > >
                          > > > On 09/27/11 15:39, medura43 wrote:
                          > > > > print "Which device file do you want\n"
                          > > > > my $name = <STDIN>;
                          > > > > chomp;
                          > > > > print "The value is $name \n";
                          > > > >
                          > > > > When I type in my response, it appears to be waiting. Not sure
                          > > > what
                          > > > > the issue would be. I am starting to think that it may be some
                          > > > > sort of memory issue.
                          > > > >
                          > > > > Does anyone have any ideas?
                          > > >
                          > > > The script that you posted has a missing semicolon after the first
                          > > > print statement. `chomp` without any arguments chomps the `$_` variable.
                          > > > However, the input is in `$name`. `chomp($name)` or `chomp( my
                          > > > $name = <STDIN> )` shall be used instead.
                          > > >
                          > > > Revised program:
                          > > >
                          > > > use strict;
                          > > > use warnings;
                          > > >
                          > > > print "Which device file do you want?\n";
                          > > > chomp( my $name = <STDIN> );
                          > > > print "The value is '$name'.\n";
                          > > >
                          > > > Regards,
                          > > > Alan Haggai Alavi.
                          > > > --
                          > > > The difference makes the difference.
                          > > >
                          > >
                          > >
                          > >
                          > >
                          > > ------------------------------------
                          > >
                          > > Unsubscribing info is here:
                          > > http://help.yahoo.com/help/us/groups/groups-32.htmlYahoo! Groups
                          > > Links
                          > >
                          > >
                          > >
                          > >
                          > > T. Rowe Price (including T. Rowe Price Group, Inc. and its affiliates) and its associates do not provide legal or tax advice. Any tax-related discussion contained in this e-mail, including any attachments, is not intended or written to be used, and cannot be used, for the purpose of (i) avoiding any tax penalties or (ii) promoting, marketing, or recommending to any other party any transaction or matter addressed herein. Please consult your independent legal counsel and/or professional tax advisor regarding any legal or tax issues raised in this e-mail.
                          > >
                          > > The contents of this e-mail and any attachments are intended solely for the use of the named addressee(s) and may contain confidential and/or privileged information. Any unauthorized use, copying, disclosure, or distribution of the contents of this e-mail is strictly prohibited by the sender and may be unlawful. If you are not the intended recipient, please notify the sender immediately and delete this e-mail.
                          > >
                          >




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

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




                          T. Rowe Price (including T. Rowe Price Group, Inc. and its affiliates) and its associates do not provide legal or tax advice. Any tax-related discussion contained in this e-mail, including any attachments, is not intended or written to be used, and cannot be used, for the purpose of (i) avoiding any tax penalties or (ii) promoting, marketing, or recommending to any other party any transaction or matter addressed herein. Please consult your independent legal counsel and/or professional tax advisor regarding any legal or tax issues raised in this e-mail.

                          The contents of this e-mail and any attachments are intended solely for the use of the named addressee(s) and may contain confidential and/or privileged information. Any unauthorized use, copying, disclosure, or distribution of the contents of this e-mail is strictly prohibited by the sender and may be unlawful. If you are not the intended recipient, please notify the sender immediately and delete this e-mail.
                        • Shawn H Corey
                          ... Always `use strict;` Always `use warnings;` -- Just my 0.00000002 million dollars worth, Shawn Confusion is the first step of understanding. Programming is
                          Message 12 of 20 , Sep 27, 2011
                          • 0 Attachment
                            On 11-09-27 04:56 PM, Rajagopal, Jay wrote:
                            > Don't use strict.

                            Always `use strict;`

                            Always `use warnings;`


                            --
                            Just my 0.00000002 million dollars worth,
                            Shawn

                            Confusion is the first step of understanding.

                            Programming is as much about organization and communication
                            as it is about coding.

                            The secret to great software: Fail early & often.

                            Eliminate software piracy: use only FLOSS.

                            "Make something worthwhile." -- Dear Hunter
                          • Shawn H Corey
                            ... # use the three argument open and test for success open my $cmd_fh,
                            Message 13 of 20 , Sep 27, 2011
                            • 0 Attachment
                              On 11-09-27 04:46 PM, medura43 wrote:
                              >
                              > !/usr/bin/perl
                              > use strict;
                              > use warnings;
                              >
                              > open(CMD,"<lvmtab.txt");

                              # use the three argument open and test for success
                              open my $cmd_fh, '<', 'lvmtab.txt' or die "could not open lvmtab.txt: $!\n";

                              > undef($/); # Slurps in the lvmtab.txt into the array
                              >
                              > while (<CMD>) {
                              > my @device = (split/[\n]/);
                              > }

                              # replace the loop with:
                              my @dvice = <$cmd_fh>;

                              # always close your files
                              close $cmd_fh or die "could not close lvmtab.txt: $!\n";

                              >
                              > foreach my $device (my @device) {
                              > (my $agile, my $legacy) = split(/\s+/, my $device);

                              # too many `my`s
                              my ( $agile, $legacy ) = split /\s+/, $device;

                              __END__

                              From this point on, the script does not make sense.

                              > my $legacy{my $agile} = my $legacy;
                              > }

                              1. Closing the loop means it does do anything useful.

                              >
                              > $legacy = (keys my %legacy);

                              2. %legacy does not contain anything.

                              >
                              > foreach $agile (keys %legacy) {

                              3. %legacy is empty, this loop is skipped.

                              > print "$agile:\t$legacy{$agile}\n";
                              > }
                              > $|=1;

                              4. Don't do this; it only slows down your program.

                              > print "Which device file do you want\n "; # Test to find out why it
                              > chomp(my $name = <STDIN>); # hangs
                              > print "The value is $name \n";
                              >
                              > $hash_len = keys %legacy; # Number of lines in a hash

                              5. No, the number of keys in the hash, which is zero.

                              >
                              > print "The following elements\n";
                              > print "$agile --> $legacy{$agile} $hash_len\n";
                              > close CMD;


                              --
                              Just my 0.00000002 million dollars worth,
                              Shawn

                              Confusion is the first step of understanding.

                              Programming is as much about organization and communication
                              as it is about coding.

                              The secret to great software: Fail early & often.

                              Eliminate software piracy: use only FLOSS.

                              "Make something worthwhile." -- Dear Hunter
                            • Rajagopal, Jay
                              I have professional programming experience in PERL for 10 years. If a person does not know between a reference and a declaration, DON T USE STRICT. ... From:
                              Message 14 of 20 , Sep 27, 2011
                              • 0 Attachment
                                I have professional programming experience in PERL for 10 years.

                                If a person does not know between a reference and a declaration, DON'T USE STRICT.

                                -----Original Message-----
                                From: Shawn H Corey [mailto:shawnhcorey@...]
                                Sent: Tuesday, September 27, 2011 5:40 PM
                                To: perl-beginner@yahoogroups.com
                                Cc: Rajagopal, Jay
                                Subject: Re: [PBML] <STDIN>

                                On 11-09-27 04:56 PM, Rajagopal, Jay wrote:
                                > Don't use strict.

                                Always `use strict;`

                                Always `use warnings;`


                                --
                                Just my 0.00000002 million dollars worth,
                                Shawn

                                Confusion is the first step of understanding.

                                Programming is as much about organization and communication as it is about coding.

                                The secret to great software: Fail early & often.

                                Eliminate software piracy: use only FLOSS.

                                "Make something worthwhile." -- Dear Hunter

                                T. Rowe Price (including T. Rowe Price Group, Inc. and its affiliates) and its associates do not provide legal or tax advice. Any tax-related discussion contained in this e-mail, including any attachments, is not intended or written to be used, and cannot be used, for the purpose of (i) avoiding any tax penalties or (ii) promoting, marketing, or recommending to any other party any transaction or matter addressed herein. Please consult your independent legal counsel and/or professional tax advisor regarding any legal or tax issues raised in this e-mail.

                                The contents of this e-mail and any attachments are intended solely for the use of the named addressee(s) and may contain confidential and/or privileged information. Any unauthorized use, copying, disclosure, or distribution of the contents of this e-mail is strictly prohibited by the sender and may be unlawful. If you are not the intended recipient, please notify the sender immediately and delete this e-mail.
                              • Shawn H Corey
                                ... Excellent. I like to see young people having an interest in Perl. BTW, I ve been programming in Perl since version 4. ... What does that have to do with
                                Message 15 of 20 , Sep 27, 2011
                                • 0 Attachment
                                  On 11-09-27 05:53 PM, Rajagopal, Jay wrote:
                                  > I have professional programming experience in PERL for 10 years.

                                  Excellent. I like to see young people having an interest in Perl. BTW,
                                  I've been programming in Perl since version 4.

                                  >
                                  > If a person does not know between a reference and a declaration, DON'T USE STRICT.

                                  What does that have to do with it? There are some good reasons to use
                                  strict:

                                  1. It catches spelling mistakes of any variable.

                                  2. It doesn't allow symbolic references. Symbolic references can
                                  inadvertently overwrite variables with strange values. This is a bug
                                  that's hard to diagnose.

                                  `use strict;` and `use warnings;` are recommended Perl's best practices.

                                  BTW, you can `use diagnostics;` instead of `use warnings;`. It gives a
                                  lengthier warning message but does the same thing.
                                • Amish Husain
                                  I completely agree on this, I have always used -w /use strict. Its always a good programming practice and this will help you write better/cleaner code.
                                  Message 16 of 20 , Sep 27, 2011
                                  • 0 Attachment
                                    I completely agree on this, I have always used -w /use strict. Its always a good programming practice and this will help you write better/cleaner code.


                                    ________________________________
                                    From: Shawn H Corey <shawnhcorey@...>
                                    To: perl-beginner@yahoogroups.com
                                    Cc: "Rajagopal, Jay" <jay_rajagopal@...>
                                    Sent: Tuesday, September 27, 2011 5:40 PM
                                    Subject: Re: [PBML] <STDIN>


                                     
                                    On 11-09-27 04:56 PM, Rajagopal, Jay wrote:
                                    > Don't use strict.

                                    Always `use strict;`

                                    Always `use warnings;`

                                    --
                                    Just my 0.00000002 million dollars worth,
                                    Shawn

                                    Confusion is the first step of understanding.

                                    Programming is as much about organization and communication
                                    as it is about coding.

                                    The secret to great software: Fail early & often.

                                    Eliminate software piracy: use only FLOSS.

                                    "Make something worthwhile." -- Dear Hunter



                                    [Non-text portions of this message have been removed]
                                  • merlyn@stonehenge.com
                                    ... Rajagopal I have professional programming experience in PERL for 10 Rajagopal years. No you don t. If you still call it PERL , you ve *never* been a
                                    Message 17 of 20 , Sep 28, 2011
                                    • 0 Attachment
                                      >>>>> "Rajagopal" == Rajagopal, Jay <jay_rajagopal@...> writes:

                                      Rajagopal> I have professional programming experience in PERL for 10
                                      Rajagopal> years.

                                      No you don't. If you still call it "PERL", you've *never* been a
                                      professional.

                                      Please don't lie like that.

                                      --
                                      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.posterous.com/ for Smalltalk discussion
                                    • medura43
                                      Thank your for all your help, I am going to have a close look at all your comments.
                                      Message 18 of 20 , Sep 28, 2011
                                      • 0 Attachment
                                        Thank your for all your help, I am going to have a close look at all your comments.

                                        --- In perl-beginner@yahoogroups.com, merlyn@... wrote:
                                        >
                                        > >>>>> "Rajagopal" == Rajagopal, Jay <jay_rajagopal@...> writes:
                                        >
                                        > Rajagopal> I have professional programming experience in PERL for 10
                                        > Rajagopal> years.
                                        >
                                        > No you don't. If you still call it "PERL", you've *never* been a
                                        > professional.
                                        >
                                        > Please don't lie like that.
                                        >
                                        > --
                                        > 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.posterous.com/ for Smalltalk discussion
                                        >
                                      • andy_bach@wiwb.uscourts.gov
                                        while ( ) { my @device = (split/[ n]/); } Unfortunatley, the my here means @device goes way outside the while loop my @device; while ( ) { @device =
                                        Message 19 of 20 , Sep 28, 2011
                                        • 0 Attachment
                                          while (<CMD>) {
                                          my @device = (split/[\n]/);
                                          }

                                          Unfortunatley, the 'my' here means @device goes way outside the while loop
                                          my @device;
                                          while (<CMD>) {
                                          @device = (split/[\n]/);
                                          }

                                          same as:
                                          my @device = <CMD>;

                                          as the <...> splits on \n for you.

                                          >> Too many "my"s ... From this point on, the script does not make sense.

                                          (my $agile, my $legacy) = split(/\s+/, my $device);
                                          my $legacy{my $agile} = my $legacy;

                                          Yeah, you need to first declare the hash (as a hash, that is, w/ the '%')
                                          and then assign to it:
                                          my ($agile, $legacy) = split(/\s+/, $device);
                                          my %legacy;
                                          $legacy{$agile} = $legacy;

                                          'my' is only needed once per variable - it marks the variable as
                                          'lexically scoped' but it doesn't need to be part of any further use.
                                          Both:
                                          my @device;
                                          @device = <CMD>;

                                          and:
                                          my @device = <CMD>;

                                          are basically the same. After that you can just use @device (or
                                          $device[1] etc) as needed. "@devices" plural, is a better name (see
                                          below).

                                          It is silly/bad to use the same name for different vars unless there's
                                          really really a strong reason ... can't imagine one. So using legacy as a
                                          hash and a scalar var name will only confuse you more, later on. I often
                                          just pluralize whatever's in there (assuming 'legacy' refers to some old
                                          device name?)
                                          my %legacy_devices;
                                          $legacy_devices{$agile} = $legacy;

                                          "Perl Best Practices" suggests naming hash to reflect the fact that they
                                          are generally used as single objects ( $hash_name{$key} vs %hash_name -
                                          unlike arrays which are often used as collectives, e.g. @devices vs
                                          $devices[2]) so use a singular noun and a preposition (examples given:
                                          %title_of
                                          %count_for
                                          %is_available

                                          ) - a great book (Damian Conway, O'Reilly, natch) but we all can't be as
                                          consistenly clever as Mr. Conway, even in our dreams.

                                          Seems the next part you want is to get a name from the user and see if
                                          that is a key to your hash - you're close there, but:

                                          print "Which device file do you want\n "; # Test to find out why it
                                          chomp(my $name = <STDIN>); # hangs
                                          print "The value is $name \n";

                                          $hash_len = keys %legacy; # Number of lines in a hash
                                          print "The following elements\n";
                                          print "$agile --> $legacy{$agile} $hash_len\n";

                                          I think you want:
                                          print "$name --> $legacy_devices{$name} $hash_len\n";

                                          so:
                                          if ( exist $legacy_devices{$name} ) {
                                          print "$name --> $legacy_devices{$name}\n";
                                          }
                                          else {
                                          print "Sorry $name is not in our legacy devices list (length:
                                          $hash_len)\n";
                                          }

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

                                          ?One of the most striking differences between a cat and a lie is that a
                                          cat has only nine lives.?
                                          Mark Twain, Vice President, American Anti-Imperialist League, and
                                          erstwhile writer

                                          [Non-text portions of this message have been removed]
                                        • Paul.G
                                          Thanks again, going through your comments. The reason, I interchange the var legacy and device. Is because, I am attempting to separate legacy device names
                                          Message 20 of 20 , Sep 30, 2011
                                          • 0 Attachment
                                            Thanks again, going through your comments.

                                            The reason, I interchange the var legacy and device. Is because, I am attempting to separate legacy device names from agile names. Agile names become the key in a hash for legacy devices.

                                            for eg:
                                            /dev/disk/disk43   /dev/dsk/c4t5d6

                                            c4t5d6 is the legacy device name for disk43

                                            cheers



                                            ________________________________
                                            From: "andy_bach@..." <andy_bach@...>
                                            To: perl-beginner@yahoogroups.com
                                            Sent: Thursday, 29 September 2011 1:51 AM
                                            Subject: [PBML] Re: <STDIN>


                                             
                                            while (<CMD>) {
                                            my @device = (split/[\n]/);
                                            }

                                            Unfortunatley, the 'my' here means @device goes way outside the while loop
                                            my @device;
                                            while (<CMD>) {
                                            @device = (split/[\n]/);
                                            }

                                            same as:
                                            my @device = <CMD>;

                                            as the <...> splits on \n for you.

                                            >> Too many "my"s ... From this point on, the script does not make sense.

                                            (my $agile, my $legacy) = split(/\s+/, my $device);
                                            my $legacy{my $agile} = my $legacy;

                                            Yeah, you need to first declare the hash (as a hash, that is, w/ the '%')
                                            and then assign to it:
                                            my ($agile, $legacy) = split(/\s+/, $device);
                                            my %legacy;
                                            $legacy{$agile} = $legacy;

                                            'my' is only needed once per variable - it marks the variable as
                                            'lexically scoped' but it doesn't need to be part of any further use.
                                            Both:
                                            my @device;
                                            @device = <CMD>;

                                            and:
                                            my @device = <CMD>;

                                            are basically the same. After that you can just use @device (or
                                            $device[1] etc) as needed. "@devices" plural, is a better name (see
                                            below).

                                            It is silly/bad to use the same name for different vars unless there's
                                            really really a strong reason ... can't imagine one. So using legacy as a
                                            hash and a scalar var name will only confuse you more, later on. I often
                                            just pluralize whatever's in there (assuming 'legacy' refers to some old
                                            device name?)
                                            my %legacy_devices;
                                            $legacy_devices{$agile} = $legacy;

                                            "Perl Best Practices" suggests naming hash to reflect the fact that they
                                            are generally used as single objects ( $hash_name{$key} vs %hash_name -
                                            unlike arrays which are often used as collectives, e.g. @devices vs
                                            $devices[2]) so use a singular noun and a preposition (examples given:
                                            %title_of
                                            %count_for
                                            %is_available

                                            ) - a great book (Damian Conway, O'Reilly, natch) but we all can't be as
                                            consistenly clever as Mr. Conway, even in our dreams.

                                            Seems the next part you want is to get a name from the user and see if
                                            that is a key to your hash - you're close there, but:

                                            print "Which device file do you want\n "; # Test to find out why it
                                            chomp(my $name = <STDIN>); # hangs
                                            print "The value is $name \n";

                                            $hash_len = keys %legacy; # Number of lines in a hash
                                            print "The following elements\n";
                                            print "$agile --> $legacy{$agile} $hash_len\n";

                                            I think you want:
                                            print "$name --> $legacy_devices{$name} $hash_len\n";

                                            so:
                                            if ( exist $legacy_devices{$name} ) {
                                            print "$name --> $legacy_devices{$name}\n";
                                            }
                                            else {
                                            print "Sorry $name is not in our legacy devices list (length:
                                            $hash_len)\n";
                                            }

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

                                            ?One of the most striking differences between a cat and a lie is that a
                                            cat has only nine lives.?
                                            Mark Twain, Vice President, American Anti-Imperialist League, and
                                            erstwhile writer

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




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