problem with "our"

Discussion in 'Perl Misc' started by JaSeong Ju, Feb 5, 2004.

  1. JaSeong Ju

    JaSeong Ju Guest

    Hi..

    I'm new to perl.

    How come this piece of code does not work in SunOs5.8, with perl v.
    5.005_03 ?
    --------------------
    #!/usr/bin/perl

    our $choice = 67.90;
    print STDERR " value is: ", $choice, "\n";
    exit(0);
    -------------
    The error is as follows:

    Can't modify subroutine entry in scalar assignment at test6.pl line 3,
    near "67.90;"
    Execution of test6.pl aborted due to compilation errors.





    The above script works well in Linux 2.4.20-8 kernel with perl v. 5.8.0.
    Also, if "our" is replaced with "my", then script works in both operating
    systems.

    Is perl version 5.005_03 too old?

    Many thanks.

    JaSeong Ju
     
    JaSeong Ju, Feb 5, 2004
    #1
    1. Advertising

  2. JaSeong Ju <> wrote in message news:<>...

    > I'm new to perl.


    And your perl is old to me ;-)

    > How come this piece of code does not work in SunOs5.8, with perl v.
    > 5.005_03 ?


    The our keyword was introduced in 5.6.0, and is not available in your
    version of Perl.

    Thus, you have essentially written:

    foo $bar = xxx

    which Perl sees as:

    $bar->foo() = xxx

    which is why you're getting an error about modifying a subroutine.

    Bottom line: use a newer Perl. 5.005_03 (released in 1999) is outdated
    by 2 major and many more minor revisions. We're up to 5.8.3. I believe
    at this point.

    Staying within 2 years of current is probably wise with any language,
    as storebought documentation and web or print articles about the
    language will tend to be woefully out-of-date otherwise (try using STL
    implementations from 1999 with modern C++ documentation, for example
    ;-)

    That said, your Perl installation should have plenty of documentation
    on how to establish global (package-scoped, of course) variables
    without causing "strict" problems. See the documentation for the
    "strict" and "vars" modules using the "perldoc" program for more
    information.
     
    Aaron Sherman, Feb 5, 2004
    #2
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Andreas Suurkuusk
    Replies:
    0
    Views:
    4,040
    Andreas Suurkuusk
    Jul 27, 2003
  2. Ted Miller
    Replies:
    0
    Views:
    5,229
    Ted Miller
    Sep 13, 2003
  3. oyster
    Replies:
    12
    Views:
    415
  4. Venkatesh
    Replies:
    4
    Views:
    318
    Andrew Thompson
    Mar 1, 2007
  5. JaSeong Ju

    problem with "our"

    JaSeong Ju, Feb 5, 2004, in forum: Perl Misc
    Replies:
    1
    Views:
    88
    Sherm Pendley
    Feb 5, 2004
Loading...

Share This Page