Ik heb een voorbeeldscrippie wat resulteert in een foutmelding:
"Can't call method "addfile" on an undefined value at ./undefined_value.pl line 25."
Ik weet van de voordelen van 'use strict' en wil het om die reden ook graag gebruiken, maar dan loop ik dus tegen de bovengenoemde melding aan.
Als ik alle 'my's en 'use strict;' verwijder werkt het gewoon.
In de subroutine MD5en heeft $file een ingestelde waarde en opent ie ook op filehandle FILE het gevonden bestand.
Kan iemand mij tip van de hand doen hoe ik die value die nu dus undefined is wel kan definieren bij het aanroepen van de Digest-MD5 module?
"Can't call method "addfile" on an undefined value at ./undefined_value.pl line 25."
Ik weet van de voordelen van 'use strict' en wil het om die reden ook graag gebruiken, maar dan loop ik dus tegen de bovengenoemde melding aan.
Als ik alle 'my's en 'use strict;' verwijder werkt het gewoon.
In de subroutine MD5en heeft $file een ingestelde waarde en opent ie ook op filehandle FILE het gevonden bestand.
Kan iemand mij tip van de hand doen hoe ik die value die nu dus undefined is wel kan definieren bij het aanroepen van de Digest-MD5 module?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| #! /usr/bin/perl -s
use strict;
use Digest::MD5;
# check dir
foreach my $sf (<*>)
{
if (-f $sf)
{
&MD5en($sf)
}
}
# Open single file and calculate its MD5
sub MD5en
{
my $file = shift();
print "File to MD5: $file\n";
open ('FILE', '<', "$file");
binmode ('FILE');
my $md5 = Digest::MD5->new;
my $md5->addfile('FILE');
my $digest = $md5->hexdigest;
print "$digest\t$file\n";
close('FILE');
} |