It would be a lot easier to diagnose if you posted the relevant code.
The error message means that you've attempted to use a variable $t but haven't declared it: my $t anywhere in your code. My guess is that you've made a change to the code above, and have typed $t instead of $ts somewhere, but that's pure speculation.
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
| [reply] [d/l] [select] |
print "$ARGV[0] : ", defined $ts
? ( scalar( localtime $ts) || "has unfathomable timestamp value $t
+s" )
copy and past change de code to $t"+"s not $ts
I find the problem, thanks.
deadrop
| [reply] |
Thank you to help me, i find the first problem, variable $ts not declared, copy and past change the code to $t"+"s not $ts.
But now, the program return only values to diferent version files. see:
avaserver:~/teste-rnt # ./exetime.pl V190820081243.exe -> ( Version 1.0.11 )
T190820081243.exe : Fri Jun 19 19:22:17 1992
javaserver:~/teste-rnt # ./exetime.pl V300720081251.exe -> ( Version 1.0.12 )
T300720081251.exe : Fri Jun 19 19:22:17 1992
The code:
#!/usr/bin/perl -slw
use strict;
open EXE, '<:raw', $ARGV[0] or die "$ARGV[0] : $!";
my $dos = do{ local $/ = \65536; <EXE> };
die "$ARGV[0] is not a .exe or .dll (sig='${ \substr $dos, 0, 2 }')"
unless substr( $dos, 0, 2 ) eq 'MZ';
my $coffoff = 8+ unpack 'x60 V', $dos;
read( EXE, $dos, $coffoff - 65536 + 4, 65536 ) or die $!
if $coffoff > 65536;
my $ts = unpack "x$coffoff V", $dos;
print "$ARGV[0] : ", defined $ts
? ( scalar( localtime $ts) || "has unfathomable timestamp value $ts" )
: 'has no timestamp';
| [reply] |