Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.

POSIX::strftime behaving differently in different scripts.

by techman2006 (Beadle)
on Apr 03, 2014 at 11:23 UTC ( #1080930=perlquestion: print w/replies, xml ) Need Help??

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

I am trying to use POSIX::strftime to get the timezone of the system. Below is the script which perform this job.

#!/usr/bin/perl # use strict; use warnings; use POSIX qw(strftime); my $timeZone = strftime "%z", localtime(); print "$timeZone \n"; Output: # perl +0100

Now when I merge this logic in another script it an getting below error.

Usage: POSIX::strftime(fmt, sec, min, hour, mday, mon, year, wday = -1 +, yday = -1, isdst = -1) at line 2537 (#1) (F) You called a POSIX function with incorrect arguments. See POSIX/FUNCTIONS for more information. Uncaught exception from user code: Usage: POSIX::strftime(fmt, sec, min, hour, mday, mon, year, w +day = -1, yday = -1, isdst = -1) at line xxxx.

I am not able to get why this error is coming. Here one thing to be noted that I am using Time::localtime for some purpose.

So even I tried to use specific function from the package but still I am getting same error.

Any thoughts why this error could be coming.

Replies are listed 'Best First'.
Re: POSIX::strftime behaving differently in different scripts.
by Limbic~Region (Chancellor) on Apr 03, 2014 at 12:17 UTC
    The Friendly Manual for Time::Localtime:

    This module's default exports override the core localtime() function, replacing it with a version that returns "Time::tm"

    The reason it is not working is because you are not passing strftime() the results of the perl built-in localtime()

    Cheers - L~R

Re: POSIX::strftime behaving differently in different scripts.
by Corion (Patriarch) on Apr 03, 2014 at 12:15 UTC

    You don't show the relevant code. But as you talk of some mysterious Time::localtime - that routine is likely different from the "normal" CORE::localtime. Use the appropriate function for strftime.

      Actually script is quite big and later I figure out at that Time::locatime is overrides the core functions due to which error was reported.

      So now I am using POSIX::locatime and other stuff to use its functionality.


Log In?

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

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (4)
As of 2023-09-30 22:25 GMT
Find Nodes?
    Voting Booth?

    No recent polls found