# VERSION
perlソースファイルでコメントを見つけようとしています。次に、コメントの前に(または代わりに)バージョンを挿入します。誰かがPPIでこれを行う正しい方法を教えてもらえますか?
前
use strict;
use warnings;
package My::Package;
# VERSION
...
後
use strict;
use warnings;
package My::Package;
our $VERSION = 0.1;# VERSION
...
# VERSION
最終結果での維持はオプションです
私は実際に#VERSIONを見つける方法についていくつかのアイデアを持っていますが、1つは正しくないように見えるシリアル化されたppiドキュメントの正規表現であり、もう1つはコメントでfind_firstを使用していますが、それが最初でない場合はわかりません何をすべきか。
更新されたコードコメントのみを確認するため、これは正しい解決策に近いようです。しかし、使用方法や実際に新しい変数を作成する方法がわかりません。
#!/usr/bin/env perl
use 5.012;
use strict;
use warnings;
use PPI;
my $ppi = PPI::Document->new('test.pm');
my $comments = $ppi->find('PPI::Token::Comment');
my $version = PPI::Statement::Variable->new;
foreach ( @{$comments} ) {
if ( /^\s*#\s+VERSION\b$/ ) {
$_->replace($version);
}
}
アップデート
この質問への答えは、DZP::OurPkgVersionの基盤になりました