Bonjour,
J'ai un souci en tentant d'appeler 2 "built-in" fonctions de Perl -- die et warn -- via une référence de fonction.
Voici le code :
Code :
- #-------------------------------------------------------#
- # Subroutine close_s
- #
- # Safe version of close for lazy bums...
- #
- # @param Filehandle
- # @param Error level: warn (default value) or die
- # @return Return value of close
- #-------------------------------------------------------#
- sub close_s ( *;$ )
- {
- # Check filehandle parameter
- my $FILEHANDLE = shift
- or die 'close_s: filehandle required';
- # Set error level:
- # - warning (default behavior)
- my $error_cmd = \&warn;
- # - exception
- $error_cmd = \&die
- if $_ = shift and /^die$/i;
- my $value = close $FILEHANDLE
- or &$error_cmd( $!
- ? "Can't close $FILEHANDLE: $!"
- : "Exit status $? from closing $FILEHANDLE" );
- return $value;
- }
- close_s( TEST );
|
J'ai le message d'erreur suivant :
Undefined subroutine &main::warn called at ./batch.pl line 73.
|
Donc la question est : dans quel module sont définis warn et die pour que je puisse les appeler correctement ?