Perlで「Subroutine permission redefined at~」を抑止する方法
Perlで「Subroutine permission redefined at~」を抑止する方法を紹介します。
1.問題点
Perlde定義済の関数を上書きすると、
Subroutine permission redefined at~
というワーニングが表示されます。
このワーニングを抑止したいのですが方法がわかりません。
ということで、Perlで「Subroutine permission redefined at~」を抑止する方法を紹介します。
2.「Subroutine permission redefined at~」を抑止する
「Subroutine permission redefined at~」を抑止するには、関数の上書きを行っている個所の前に、下記を追加します。
use warnings;
no warnings 'redefine';
解決しない場合は、上書きされている方の関数の直前に、上の2行を記述してみてください。
svnでファイルやディレクトリを削除する方法
svnでファイルやディレクトリを削除する方法を紹介します。
1.問題点
下記の手順でディレクトリとファイルをリポジトリに追加しました。
# mkdir foo
# svn add foo
# svn commit -m '' foo
# cd foo
# touch test.txt
# svn add test.txt
# svn commit -m '' test.txt
この、fooとtest.test.txtをリポジトリから削除したいのですが方法がわかりません。
ということで、svnでファイルやディレクトリを削除する方法を紹介します。
2.svnでファイルやディレクトリを削除する
ァイルやディレクトリを削除するには、deleteとcommitで実施します。
# cd foo
# rm -f test.txt
# svn delete test.txt
# svn commit -m '' test.txt
# cd ..
# rmdir foo
# svn delete foo
# svn commit -m '' foo
これでリポジトリから削除されます。
Rubyで実行ラインのトレース結果をファイルに出力する方法
業務の都合でRubyを調べることになりました。
最初に、Rubyで実行ラインのトレース結果をファイルに出力する方法を紹介します。
1.問題点
下記の簡単なRubyスクリプトを書きました。
foo = 123
このスクリプトのトレース結果を出力させたいのですが、方法が分かりません。
ということで、Rubyで実行ラインをトレースしてファイルに出力する方法を紹介します。
2.Rubyで実行ラインをトレースしてファイルに出力する方法
標準出力に表示するには、下記の赤字部分を追加します。
require 'tracer'
Tracer.on
foo = 123
Tracer.off
実行結果
# ruby test.rb
#0:test.rb:4::-: foo = 123
#0:test.rb:6::-: Tracer.off
ファイルに表示するには、下記の赤字部分を追加します。
require 'tracer'
fp = File.open('/tmp/foo.txt', "w")
Tracer.stdout = fp
Tracer.on
foo = 123
Tracer.off
実行後の出力ファイル
# cat /tmp/foo.txt
#0:test.rb:6::-: foo = 123
#0:test.rb:8::-: Tracer.off
3.解説
トレーサ用のライブラリを読み込みます。
require 'tracer'
トレース出力を開始したいポイントに「Tracer.on」を記述します。
Tracer.on
トレース出力を終了したいポイントに「Tracer.off」を記述します。
Tracer.off
ファイルに出力する場合は、ファイルを書き込みモードで開きます。
fp = File.open('/tmp/foo.txt', "w")
そしてファイルポインタをトレーサの標準出力先に指定すればOKです。
Tracer.stdout = fp
4.注意事項
Tracer.on/Tracer.offは、埋め込んだ位置によって正常に動作しないようです。