Hi Adrian,

> running the command:
> date|awk '{print $2,$3}'
> 
> provides me with the output I require (i.e. the month and day, May 6).
> 
> however, when I try to call this from within a perl script:
> system("date|awk '{print $2,$3}'");
> 
> I get:
> awk: syntax error near line 1
> awk: illegal statement near line 1

I would guess that Perl substitutes the variables $2 and $3 before passing
them to awk. Try printing the command before sending it to see if itīs ok:

  my $command = "date|awk '{print $2,$3}'";
  print "gonna send >>$command<<\n";
  system($command);

If thatīs the case, you might be able to fix this by escaping the dollar 
signs:

  my $command = "date|awk '{print \$2,\$3}'";

> 
> 
> any ideas? alternatively, does anyone have another way to 
> generate the date
> in this format that I can assign to a variable?
> 

Anyway - using a system call for getting the date look like overkill to me.
I'd use something like this:

my (undef, undef, undef, $mday, $mon) = localtime();

printf "Today is %s $mday\n",
  (qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec))[ $mon ];

See perldoc -f localtime for detailed information.

HTH,

Philipp

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to