脳の中の絵本

睡眠薬依存のアスペルガー障害持ちが社会適応目指して足掻くブログ

2019-02-26 Perl 他package スクリプトの変数をimport

our で宣言し、呼び出し側でrequireして上げることで、$<package名>::<変数名> で取り出すことができた。

適当にやったらできただけなのでこれで良いのかどうかは知らない。。。

main.pl

#!/usr/bin/env perl
package Main;

use strict;
use warnings;
use utf8;
use 5.12.1;

&main() if $0 eq __FILE__;

sub main(){
  require "./sub.pl";
  import $Sub::VAR;

  my $VAR = $Sub::VAR;
  print $VAR;
  return 0;
}

1;

sub.pl

#!/usr/bin/env perl
package Sub;

use strict;
use warnings;
use utf8;
use 5.12.1;

our $VAR = "Hello!\n";

&main() if $0 eq __FILE__;

sub main(){
  print $VAR;
  return 0;
}

1;

実行

$ ./sub.pl
Hello!

$ ./main.pl
Hello!