<<'CODE_FOR_SIGNATURES'; sub f :lvalue ($a, $b) { ... }; # 5.28用のコード CODE_FOR_SIGNATURES ... my $chosen = ($] >= 5.020 and $] < 5.022) or $] >= 5.028 ? 'signatures' : $] >= 5.022 and $] < 5.028 ? 'oldsignatures' : 'plain'; require Filter::Util::Call; Filter::Util::Call::filter_add(sub { Filter::Util::Call::filter_del(); 1 while Filter::Util::Call::filter_read(); $_ = $options{$chosen}; }); } 0; # should never get here