Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

help with basic script

by eddiemo (Novice)
on May 28, 2019 at 14:21 UTC ( [id://11100638]=perlquestion: print w/replies, xml ) Need Help??

eddiemo has asked for the wisdom of the Perl Monks concerning the following question:

I don't understand why the following script will not run.I feel like I might be violating some basic structure or scope rule of a perl script. The code isas follows:

#!/usr/bin/perl use 5.010; use strict; use warnings; my $year = 2019; my $month = 5; my $day = 19; print "Hello World!\n"; print"\n\t START ing script $0\n"; sub get_date { my ($y, $m, $d) = (9999, 888, 77); return($y, $m, $d); } # end get_date ($year, $month, $day = get_date; print "SA - YEAR: $year, MONTH: $month, DAY: $day\n"; print "\n\t\t END ing script $0\n";

It's a simple script with one sub (stubbed) to return three values. the script calls the sub then prints the returned values.I am getting a Padre syntax error of"syntax error near"get_date;". I'm using the Padre IDE v0.94 with Perl v5.24.1. thanks in advance.

2019-05-30 Athanasius removed superfluous blank lines from code

Replies are listed 'Best First'.
Re: help with basic script
by thanos1983 (Parson) on May 28, 2019 at 15:08 UTC

    Hello eddiemo,

    You have forgotten to close parenthesis when you store your attributes (see below):

    $ perl test.pl syntax error at test.pl line 17, near "get_date;" Execution of test.pl aborted due to compilation errors.

    After adding the parenthesis it works :) (see below):

    $ perl test.pl Hello World! START ing script test.pl SA - YEAR: 2019, MONTH: 5, DAY: 77 END ing script test.pl

    Sample of code for replication after modifications:

    #!/usr/bin/perl use strict; use warnings; my $year = 2019; my $month = 5; my $day = 19; print "Hello World!\n"; print"\n\t START ing script $0\n"; sub get_date { my ($y, $m, $d) = (9999, 888, 77); return($y, $m, $d); } # end get_date ($year, $month, $day) = get_date; print "SA - YEAR: $year, MONTH: $month, DAY: $day\n"; print "\n\t\t END ing script $0\n";

    I assume the goal is to pass some parameters to the function. I would recommend to start reading here perlsub. If you have any questions do not hesitate to ask again.

    Hope this helps, BR.

    Seeking for Perl wisdom...on the process of learning...not there...yet!
Re: help with basic script
by LanX (Saint) on May 28, 2019 at 14:58 UTC
    >
    ($year, $month, $day = get_date; # ^ there

    does closing the parens help? :)

    Cheers Rolf
    (addicted to the Perl Programming Language :)
    Wikisyntax for the Monastery FootballPerl is like chess, only without the dice

      Thank you Thank you Thank you! I'm torn between "thst's it"! and "that's it?!Rookie mistake - thanks for catching it!

Re: help with basic script
by marto (Cardinal) on May 28, 2019 at 15:04 UTC

    replace:

    ($year, $month, $day = get_date;

    with:

    ($year, $month, $day) = get_date;
Re: help with basic script
by marto (Cardinal) on May 28, 2019 at 14:24 UTC

    Welcome, there doesn't seem to be any code, can you edit your post accordingly?

    Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://11100638]
Approved by marto
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others about the Monastery: (4)
As of 2024-05-28 03:32 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found