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

perl doubt

Expand Messages
  • ankit d
    I have a file which has 7 columns and is seperated by tabs. I have to perform the following but not sure how to do it; Need perl experts help on this ; All of
    Message 1 of 8 , May 23, 2013
    • 0 Attachment
      I have a file which has 7 columns and is seperated by tabs. I have to perform the following but not sure how to do it;
      Need perl experts help on this ;


      All of the columns should be 32 bit integers and Nulls are not allowed.

      Perform the following on this file.

      1) The file contains errors. Remove the bad lines. The description of the file
      above should tell you which lines are valid. The program should remove the
      lines and output them to the screen.

      2) Find the number of distinct rows for column 2 in the corrected file. Output
      this number to the screen.
    • interrobang
      This is obviously a homework assignment. You won t learn very much if we do your work for you. Please show us what you have tried so far and tell us what
      Message 2 of 8 , May 23, 2013
      • 0 Attachment
        This is obviously a homework assignment. You won't learn very much if we do your work for you. Please show us what you have tried so far and tell us what happens when you try to run your program. We'll try to help you over any rough spots you may be finding.

        RobR

        --- In perl-beginner@yahoogroups.com, "ankit d" <ankit_dhebarin@...> wrote:
        >
        > I have a file which has 7 columns and is seperated by tabs. I have to perform the following but not sure how to do it;
        > Need perl experts help on this ;
        >
        >
        > All of the columns should be 32 bit integers and Nulls are not allowed.
        >
        > Perform the following on this file.
        >
        > 1) The file contains errors. Remove the bad lines. The description of the file
        > above should tell you which lines are valid. The program should remove the
        > lines and output them to the screen.
        >
        > 2) Find the number of distinct rows for column 2 in the corrected file. Output
        > this number to the screen.
        >
      • ankit d
        Well ,thanks for your quick reply .. I followed the below steps to do it, 1) using split , I could assign each tab delimited value and store it into a
        Message 3 of 8 , May 23, 2013
        • 0 Attachment
          Well ,thanks for your quick reply ..
          I followed the below steps to do it,

          1) using split , I could assign each tab delimited value and store it into a variable.
          But I am not actually able to understand what exactly do I have to do .

          Hence I need your help.

          Thanks again

          --- In perl-beginner@yahoogroups.com, "interrobang" <CedricCicada@...> wrote:
          >
          > This is obviously a homework assignment. You won't learn very much if we do your work for you. Please show us what you have tried so far and tell us what happens when you try to run your program. We'll try to help you over any rough spots you may be finding.
          >
          > RobR
          >
          > --- In perl-beginner@yahoogroups.com, "ankit d" <ankit_dhebarin@> wrote:
          > >
          > > I have a file which has 7 columns and is seperated by tabs. I have to perform the following but not sure how to do it;
          > > Need perl experts help on this ;
          > >
          > >
          > > All of the columns should be 32 bit integers and Nulls are not allowed.
          > >
          > > Perform the following on this file.
          > >
          > > 1) The file contains errors. Remove the bad lines. The description of the file
          > > above should tell you which lines are valid. The program should remove the
          > > lines and output them to the screen.
          > >
          > > 2) Find the number of distinct rows for column 2 in the corrected file. Output
          > > this number to the screen.
          > >
          >
        • ankit d
          I saw the pack and the unpack functions as well but am not sure which one to use. I am still a beginner to perl so need your help. Would really appreciate it
          Message 4 of 8 , May 23, 2013
          • 0 Attachment
            I saw the pack and the unpack functions as well but am not sure which one to use. I am still a beginner to perl so need your help.
            Would really appreciate it if you can help me with this.

            Thanks
            Ankit

            --- In perl-beginner@yahoogroups.com, "interrobang" <CedricCicada@...> wrote:
            >
            > This is obviously a homework assignment. You won't learn very much if we do your work for you. Please show us what you have tried so far and tell us what happens when you try to run your program. We'll try to help you over any rough spots you may be finding.
            >
            > RobR
            >
            > --- In perl-beginner@yahoogroups.com, "ankit d" <ankit_dhebarin@> wrote:
            > >
            > > I have a file which has 7 columns and is seperated by tabs. I have to perform the following but not sure how to do it;
            > > Need perl experts help on this ;
            > >
            > >
            > > All of the columns should be 32 bit integers and Nulls are not allowed.
            > >
            > > Perform the following on this file.
            > >
            > > 1) The file contains errors. Remove the bad lines. The description of the file
            > > above should tell you which lines are valid. The program should remove the
            > > lines and output them to the screen.
            > >
            > > 2) Find the number of distinct rows for column 2 in the corrected file. Output
            > > this number to the screen.
            > >
            >
          • Joe Pepersack
            Split creates an array of values. Good first step. The next step is to loop through that array and determine if each value it contains is a valid 32-bit
            Message 5 of 8 , May 24, 2013
            • 0 Attachment
              Split creates an array of values. Good first step.

              The next step is to loop through that array and determine if each value
              it contains is a valid 32-bit integer. You'll want to do a series of
              tests for possible error conditions (not a number, not an int, too big,
              too small, etc). This could be if/elsif/else or given/when (if using
              Perl 5.10 or newer). You can do these tests using regular expressions
              or mathematically. This is covered in the FAQ:
              http://perldoc.perl.org/perlfaq4.html#How-do-I-determine-whether-a-scalar-is-a-number%2fwhole%2finteger%2ffloat%3f

              For distinctness, think about what Perl variable type keeps a list of
              unique keys.

              Don't worry about pack/unpack, that's going to take you in the wrong
              direction.



              On 5/23/2013 8:18 PM, ankit d wrote:
              >
              > Well ,thanks for your quick reply ..
              > I followed the below steps to do it,
              >
              > 1) using split , I could assign each tab delimited value and store it
              > into a variable.
              > But I am not actually able to understand what exactly do I have to do .
              >
              > Hence I need your help.
              >
              > Thanks again
              >
              > --- In perl-beginner@yahoogroups.com
              > <mailto:perl-beginner%40yahoogroups.com>, "interrobang"
              > <CedricCicada@...> wrote:
              > >
              > > This is obviously a homework assignment. You won't learn very much
              > if we do your work for you. Please show us what you have tried so far
              > and tell us what happens when you try to run your program. We'll try
              > to help you over any rough spots you may be finding.
              > >
              > > RobR
              > >
              > > --- In perl-beginner@yahoogroups.com
              > <mailto:perl-beginner%40yahoogroups.com>, "ankit d" <ankit_dhebarin@>
              > wrote:
              > > >
              > > > I have a file which has 7 columns and is seperated by tabs. I have
              > to perform the following but not sure how to do it;
              > > > Need perl experts help on this ;
              > > >
              > > >
              > > > All of the columns should be 32 bit integers and Nulls are not
              > allowed.
              > > >
              > > > Perform the following on this file.
              > > >
              > > > 1) The file contains errors. Remove the bad lines. The description
              > of the file
              > > > above should tell you which lines are valid. The program should
              > remove the
              > > > lines and output them to the screen.
              > > >
              > > > 2) Find the number of distinct rows for column 2 in the corrected
              > file. Output
              > > > this number to the screen.
              > > >
              > >
              >
              >



              [Non-text portions of this message have been removed]
            • ankit d
              Sure .. Thank you very much for your reply . For your distinctness question , hash is the datastructure as it has unique keys but it can contain duplicate
              Message 6 of 8 , May 27, 2013
              • 0 Attachment
                Sure .. Thank you very much for your reply .

                For your distinctness question , hash is the datastructure as it has unique keys but it can contain duplicate values.

                However for your first question, still I am not able to figure out how do we check whether a column is 32 bit integers or not ?
                I did refer to your reference link .

                Waiting for your reponse..

                Thanks again


                --- In perl-beginner@yahoogroups.com, Joe Pepersack <joe@...> wrote:
                >
                > Split creates an array of values. Good first step.
                >
                > The next step is to loop through that array and determine if each value
                > it contains is a valid 32-bit integer. You'll want to do a series of
                > tests for possible error conditions (not a number, not an int, too big,
                > too small, etc). This could be if/elsif/else or given/when (if using
                > Perl 5.10 or newer). You can do these tests using regular expressions
                > or mathematically. This is covered in the FAQ:
                > http://perldoc.perl.org/perlfaq4.html#How-do-I-determine-whether-a-scalar-is-a-number%2fwhole%2finteger%2ffloat%3f
                >
                > For distinctness, think about what Perl variable type keeps a list of
                > unique keys.
                >
                > Don't worry about pack/unpack, that's going to take you in the wrong
                > direction.
                >
                >
                >
                > On 5/23/2013 8:18 PM, ankit d wrote:
                > >
                > > Well ,thanks for your quick reply ..
                > > I followed the below steps to do it,
                > >
                > > 1) using split , I could assign each tab delimited value and store it
                > > into a variable.
                > > But I am not actually able to understand what exactly do I have to do .
                > >
                > > Hence I need your help.
                > >
                > > Thanks again
                > >
                > > --- In perl-beginner@yahoogroups.com
                > > <mailto:perl-beginner%40yahoogroups.com>, "interrobang"
                > > <CedricCicada@> wrote:
                > > >
                > > > This is obviously a homework assignment. You won't learn very much
                > > if we do your work for you. Please show us what you have tried so far
                > > and tell us what happens when you try to run your program. We'll try
                > > to help you over any rough spots you may be finding.
                > > >
                > > > RobR
                > > >
                > > > --- In perl-beginner@yahoogroups.com
                > > <mailto:perl-beginner%40yahoogroups.com>, "ankit d" <ankit_dhebarin@>
                > > wrote:
                > > > >
                > > > > I have a file which has 7 columns and is seperated by tabs. I have
                > > to perform the following but not sure how to do it;
                > > > > Need perl experts help on this ;
                > > > >
                > > > >
                > > > > All of the columns should be 32 bit integers and Nulls are not
                > > allowed.
                > > > >
                > > > > Perform the following on this file.
                > > > >
                > > > > 1) The file contains errors. Remove the bad lines. The description
                > > of the file
                > > > > above should tell you which lines are valid. The program should
                > > remove the
                > > > > lines and output them to the screen.
                > > > >
                > > > > 2) Find the number of distinct rows for column 2 in the corrected
                > > file. Output
                > > > > this number to the screen.
                > > > >
                > > >
                > >
                > >
                >
                >
                >
                > [Non-text portions of this message have been removed]
                >
              • ankit d
                However I also think we can make a column as 32 bit integer by the foll syntax as well right ? printf ( %32d n , $_); Thanks
                Message 7 of 8 , May 27, 2013
                • 0 Attachment
                  However I also think we can make a column as 32 bit integer by the foll syntax as well right ?

                  printf ("%32d\n", $_);

                  Thanks


                  --- In perl-beginner@yahoogroups.com, Joe Pepersack <joe@...> wrote:
                  >
                  > Split creates an array of values. Good first step.
                  >
                  > The next step is to loop through that array and determine if each value
                  > it contains is a valid 32-bit integer. You'll want to do a series of
                  > tests for possible error conditions (not a number, not an int, too big,
                  > too small, etc). This could be if/elsif/else or given/when (if using
                  > Perl 5.10 or newer). You can do these tests using regular expressions
                  > or mathematically. This is covered in the FAQ:
                  > http://perldoc.perl.org/perlfaq4.html#How-do-I-determine-whether-a-scalar-is-a-number%2fwhole%2finteger%2ffloat%3f
                  >
                  > For distinctness, think about what Perl variable type keeps a list of
                  > unique keys.
                  >
                  > Don't worry about pack/unpack, that's going to take you in the wrong
                  > direction.
                  >
                  >
                  >
                  > On 5/23/2013 8:18 PM, ankit d wrote:
                  > >
                  > > Well ,thanks for your quick reply ..
                  > > I followed the below steps to do it,
                  > >
                  > > 1) using split , I could assign each tab delimited value and store it
                  > > into a variable.
                  > > But I am not actually able to understand what exactly do I have to do .
                  > >
                  > > Hence I need your help.
                  > >
                  > > Thanks again
                  > >
                  > > --- In perl-beginner@yahoogroups.com
                  > > <mailto:perl-beginner%40yahoogroups.com>, "interrobang"
                  > > <CedricCicada@> wrote:
                  > > >
                  > > > This is obviously a homework assignment. You won't learn very much
                  > > if we do your work for you. Please show us what you have tried so far
                  > > and tell us what happens when you try to run your program. We'll try
                  > > to help you over any rough spots you may be finding.
                  > > >
                  > > > RobR
                  > > >
                  > > > --- In perl-beginner@yahoogroups.com
                  > > <mailto:perl-beginner%40yahoogroups.com>, "ankit d" <ankit_dhebarin@>
                  > > wrote:
                  > > > >
                  > > > > I have a file which has 7 columns and is seperated by tabs. I have
                  > > to perform the following but not sure how to do it;
                  > > > > Need perl experts help on this ;
                  > > > >
                  > > > >
                  > > > > All of the columns should be 32 bit integers and Nulls are not
                  > > allowed.
                  > > > >
                  > > > > Perform the following on this file.
                  > > > >
                  > > > > 1) The file contains errors. Remove the bad lines. The description
                  > > of the file
                  > > > > above should tell you which lines are valid. The program should
                  > > remove the
                  > > > > lines and output them to the screen.
                  > > > >
                  > > > > 2) Find the number of distinct rows for column 2 in the corrected
                  > > file. Output
                  > > > > this number to the screen.
                  > > > >
                  > > >
                  > >
                  > >
                  >
                  >
                  >
                  > [Non-text portions of this message have been removed]
                  >
                • Shlomi Fish
                  Hi Ankit, On Tue, 28 May 2013 00:00:38 -0000 ... Do you want signed integers or unsigned integers? You can use something like (tested with is_32bit_signed):
                  Message 8 of 8 , May 27, 2013
                  • 0 Attachment
                    Hi Ankit,

                    On Tue, 28 May 2013 00:00:38 -0000
                    "ankit d" <ankit_dhebarin@...> wrote:

                    > Sure .. Thank you very much for your reply .
                    >
                    > For your distinctness question , hash is the datastructure as it has unique
                    > keys but it can contain duplicate values.
                    >
                    > However for your first question, still I am not able to figure out how do we
                    > check whether a column is 32 bit integers or not ? I did refer to your
                    > reference link .

                    Do you want signed integers or unsigned integers?

                    You can use something like (tested with is_32bit_signed):

                    < QUOTE >

                    #!/usr/bin/perl

                    use strict;
                    use warnings;

                    use Math::BigInt ":constant", lib => 'GMP';


                    sub is_32bit_signed
                    {
                    my $i = shift;

                    return (($i <= ((1 << 31) - 1)) and (-(1 << 31) <= $i));
                    }

                    sub is_32bit_unsigned
                    {
                    my $i = shift;

                    return (($i <= ((1 << 32) - 1)) and (0 <= $i));
                    }

                    my $i = shift(@ARGV);

                    print is_32bit_signed($i) ? "Signed 32-bit\n" : "Not 32-bit.\n";

                    </QUOTE>

                    Regards,

                    Shlomi Fish

                    >
                    > Waiting for your reponse..
                    >
                    > Thanks again
                    >
                    >
                    > --- In perl-beginner@yahoogroups.com, Joe Pepersack <joe@...> wrote:
                    > >
                    > > Split creates an array of values. Good first step.
                    > >
                    > > The next step is to loop through that array and determine if each value
                    > > it contains is a valid 32-bit integer. You'll want to do a series of
                    > > tests for possible error conditions (not a number, not an int, too big,
                    > > too small, etc). This could be if/elsif/else or given/when (if using
                    > > Perl 5.10 or newer). You can do these tests using regular expressions
                    > > or mathematically. This is covered in the FAQ:
                    > > http://perldoc.perl.org/perlfaq4.html#How-do-I-determine-whether-a-scalar-is-a-number%2fwhole%2finteger%2ffloat%3f
                    > >
                    > > For distinctness, think about what Perl variable type keeps a list of
                    > > unique keys.
                    > >
                    > > Don't worry about pack/unpack, that's going to take you in the wrong
                    > > direction.
                    > >
                    > >
                    > >
                    > > On 5/23/2013 8:18 PM, ankit d wrote:
                    > > >
                    > > > Well ,thanks for your quick reply ..
                    > > > I followed the below steps to do it,
                    > > >
                    > > > 1) using split , I could assign each tab delimited value and store it
                    > > > into a variable.
                    > > > But I am not actually able to understand what exactly do I have to do .
                    > > >
                    > > > Hence I need your help.
                    > > >
                    > > > Thanks again
                    > > >
                    > > > --- In perl-beginner@yahoogroups.com
                    > > > <mailto:perl-beginner%40yahoogroups.com>, "interrobang"
                    > > > <CedricCicada@> wrote:
                    > > > >
                    > > > > This is obviously a homework assignment. You won't learn very much
                    > > > if we do your work for you. Please show us what you have tried so far
                    > > > and tell us what happens when you try to run your program. We'll try
                    > > > to help you over any rough spots you may be finding.
                    > > > >
                    > > > > RobR
                    > > > >
                    > > > > --- In perl-beginner@yahoogroups.com
                    > > > <mailto:perl-beginner%40yahoogroups.com>, "ankit d" <ankit_dhebarin@>
                    > > > wrote:
                    > > > > >
                    > > > > > I have a file which has 7 columns and is seperated by tabs. I have
                    > > > to perform the following but not sure how to do it;
                    > > > > > Need perl experts help on this ;
                    > > > > >
                    > > > > >
                    > > > > > All of the columns should be 32 bit integers and Nulls are not
                    > > > allowed.
                    > > > > >
                    > > > > > Perform the following on this file.
                    > > > > >
                    > > > > > 1) The file contains errors. Remove the bad lines. The description
                    > > > of the file
                    > > > > > above should tell you which lines are valid. The program should
                    > > > remove the
                    > > > > > lines and output them to the screen.
                    > > > > >
                    > > > > > 2) Find the number of distinct rows for column 2 in the corrected
                    > > > file. Output
                    > > > > > this number to the screen.
                    > > > > >
                    > > > >
                    > > >
                    > > >
                    > >
                    > >
                    > >
                    > > [Non-text portions of this message have been removed]
                    > >
                    >
                    >



                    --
                    -----------------------------------------------------------------
                    Shlomi Fish http://www.shlomifish.org/
                    Apple Inc. is Evil - http://www.shlomifish.org/open-source/anti/apple/

                    One thing I could never understand is why in Microsoft Word, it often happens
                    that I press enter… and the font changes.

                    Please reply to list if it's a mailing list post - http://shlom.in/reply .
                  Your message has been successfully submitted and would be delivered to recipients shortly.