自作の.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;