D:\>cat temp #! /usr/local/bin/perl BEGIN { push ( @INC, "$ENV{HOME}/Filesys-DiskSpace-0.05/lib"); # Filesys:: +DiskSpace - Perl df } use strict; use warnings; require Filesys::DiskSpace; # file system /home or /dev/sda5 my $dir = "/home"; # get data for /home fs my ($fs_type, $fs_desc, $used, $avail, $fused, $favail) = Filesys::Dis +kSpace::df $dir; # calculate free space in % my $df_free = (($avail) / ($avail+$used)) * 100.0; # display message my $out = sprintf("Disk space on $dir == %0.2f\n",$df_free); print $out; D:\>perl -MO=Deparse,-p temp sub BEGIN { push(@INC, "$ENV{'HOME'}/Filesys-DiskSpace-0.05/lib"); } use warnings; use strict 'refs'; require Filesys::DiskSpace; (my $dir = '/home'); (my($fs_type, $fs_desc, $used, $avail, $fused, $favail) = $dir->Filesy +s::DiskSpace::df); (my $df_free = (($avail / ($avail + $used)) * 100)); (my $out = sprintf("Disk space on $dir == %0.2f\n", $df_free)); print($out); temp syntax OK
D:\>echo Can't call method "Filesys::DiskSpace::df" without a package +or object reference at ./try.pl line 27. | splain Can't call method "Filesys::DiskSpace::df" without a package or object reference at ./try.pl line 27. (#1) (F) You used the syntax of a method call, but the slot filled by t +he object reference or package name contains an expression that retur +ns a defined value which is neither an object reference nor a package n +ame. Something like this will reproduce the error: $BADREF = 42; process $BADREF 1,2,3; $BADREF->process(1,2,3);
In reply to Re: import external package
by Anonymous Monk
in thread import external package
by Noame
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |