fork download
  1. #!/usr/bin/perl
  2. # your code goes here
  3.  
  4. #!/usr/bin/perl
  5. use strict;
  6. use warnings;
  7.  
  8. our ($a, $b, $c); # Global variables
  9.  
  10. sub g {
  11. my ($x) = @_;
  12. print "$a $b $c\n";
  13. return $a + $b + $c + $x;
  14. }
  15.  
  16. sub f {
  17. my ($a) = @_;
  18. my $b;
  19. $b = 1;
  20. $c = 2;
  21. {
  22. my $b;
  23. $b = 9;
  24. $a = 4;
  25. $c = $b + $c;
  26. {
  27. my $a;
  28. $a = 3;
  29. $a = g(1);
  30. print "$a $b $c\n";
  31. }
  32. }
  33. {
  34. # inner scope 2
  35. my $m;
  36. my $n;
  37. $m = g(3);
  38. print "$m $a $b $c\n"; # Note: Perl will ignore the extra $c in print
  39. }
  40. return $a + $b + $c;
  41. }
  42.  
  43. {
  44. my $b;
  45. my $c;
  46. $a = 11;
  47. $b = 2;
  48. $a = f($a);
  49. print "$a $b $c\n";
  50. }
Success #stdin #stdout #stderr 0.01s 5504KB
stdin
Standard input is empty
stdout
11  11
23 9 11
11  11
25 4 1 11
16 2 
stderr
Use of uninitialized value $b in concatenation (.) or string at prog.pl line 12.
Use of uninitialized value $b in addition (+) at prog.pl line 13.
Use of uninitialized value $b in concatenation (.) or string at prog.pl line 12.
Use of uninitialized value $b in addition (+) at prog.pl line 13.
Use of uninitialized value $c in concatenation (.) or string at prog.pl line 49.