Code :
 #!/usr/bin/perl use strict; use warnings;   use Switch;   sub weight {         # is it a number? if not: error         case { $_[0] !~ /^-?(?:\d+(?:\.\d*)?|\.\d+)$/ }                    { return {France =>  "erreur: ce n'est pas un nombre", USA =>  'error: not a number'}}         # it is a number         case { $_[0] <=  0 }  { return {France =>  'erreur: trop petit', USA =>  'error: too small'}}         case { $_[0] <=  10 } { return {France =>  '1', USA =>  '9'}}         case { $_[0] <=  20 } { return {France =>  '2', USA =>  '10'}}         else                 { return {France =>  'erreur: trop grand', USA =>  'error: too large'}}     } }   my $code = weight($ARGV[0]); print $code-> {France },  " ",  $code-> {USA },  "\n";  
 
  |