alex: Undefined subroutine &main::A

Beitrag lesen

X ist nur ein perl Script, kein Package.

__SCRIPTANFANG: range.cgi__

#!/usr/bin/perl

use strict;
use File::Find;

my $smallest;
my $biggest;

sub range {

return unless ( $File::Find::name =~ /(\d+).$/ );

$smallest = $1 if ( !$smallest || $1 < $smallest );
    $biggest  = $1 if ( !$biggest  || $1 > $biggest );
}

sub get_ID_Range {

my ( $path ) = @_;

return unless ( -d $path );

find( &range, $path );

return unless ( $smallest =~ /^\d+$/ && $biggest =~ /^\d+$/ );

return [ $smallest, $biggest ];
}

1;

__SCRIPTENDE__

das wird bei mir im Hauptscript per

require "range.cgi";

aufgerufen und es kommt die Fehlermeldung ...

__AUSZUGANFANG__

$range = get_ID_Range( $$C{Global}{BackupPath} );

__ENDEAUSZUG__

beide dateien liegen im gleichen pfad und wenn ich das require auskommentiere kommt die gleiche fehlermeldung.
wenn ich ein eval um das require mache kommt nix in $@ an.
auch "require or die $!" gibt nix aus...

alex.

Die Zeile die den Fehler angibt ruft auch die Funktion auf, aber obwohl die Funktion eingebunden ist rafft Perl das nicht, weiss jemand da nen Rat?

Bist du sicher, dass Perl das nicht rafft? Was ist dein Script X, ein stinknormales Perlscript oder ein Package? Im ersten Falle verstehe ich die Fehlermeldung nicht, aber im zweiten Fall wäre sie normal (Stichwort Namensräume). Zeige also mal den relevanten Code.

Siechfred