That will work too, but you have to understand the code in the sub. You call the subroutine (with &makeDate) and that routine does something (creating a date in this case). After the string has been created, you say "Alrighty! Let's have that result back!". And so the sub does. But ermm ... then nothing happens.
As demonstrated by me (and others), you can call the sub to directly print the result it's handing back, but of course, you can use that value later. For example:
sub makeDate{
@days = ("Sun","Mon","Tues","Wed","Thurs","Fri","Sat");
@mons = ("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept",
"Oct","Nov","Dec");
(undef,undef,undef,$mday,$mon,$year,$wday,undef,undef) = localtime(
+time);
$year = 2000 + ($year - 100);
$date = "$days[$wday] $mons[$mon] $mday $year";
return $date;
}
$date = makeDate();
# ... do a lot of other things ...
print "<p>Hello, currently it's $date!</p>\n";
One more word of advice, please read perldoc strict, 'cause it will probably help you out big time later on. Might as well do it right from the beginning :)
im fairly new to sub's so, it is my error, i apologize.
We all started with Perl once and we all are here (except for maybe some monks ;) to learn something.
--
b10m
All code is usually tested, but rarely trusted.
|