自作の.pl(.pm)ファイルをrequire

実行マクロのパスとrequire

一般的に、「自作マクロのファイル」と「自作の.pl(.pm)のファイル」のディレクトリは同じにすることが多いでしょう。
管理都合上、大抵はその方が良いからです。

ここでは、そのようなよくあるパターンの記述を掲載することで、hmPerlでありがちなrequireの記述を紹介します。

currentmacrodirectory

現在実行しているマクロのディレクトリは、「currentmacrodirectory」によって得ることが出来ますので、
その文字列値を、秀丸マクロからPerlへと持ってくることで、「マクロファイルと同じ場所にある.pl」などを下記のように読み込めます。

#Perl = loaddll( hidemarudir + @"\hmPerl.dll" );

#_ = dllfuncw( #Perl, "DoString", R"(

my $currentmacrodirectory = hm->Macro->Var('currentmacrodirectory');
require($currentmacrodirectory . '\test.pl');


test_sum();

)");

freedll(#Perl);

test.pl

test.plのソースは以下のようになることでしょう。

sub test_sum {
  hm->debuginfo("test_sum");
}

1;