Created
October 6, 2013 09:09
-
-
Save tokuhirom/6851517 to your computer and use it in GitHub Desktop.
hackish でもなんでもなくて、バグってるだけじゃない?
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
http://hachiojipm.github.io/entry/2013-10-04-warn-die-hack.html | |
STDERR をキャプチャする hack は hack っぽいし、よいとして。。 | |
my $version = try { ## ここのコードがhackishでよくわからん!!! | |
open my $fh, '>', \my $stderr; | |
local *STDERR = $fh; | |
$self->database_version; | |
close $fh; | |
}; | |
このコードで close() の返り値をつかっている理由について考察がなされているが、これは単にバグであろう。 | |
元のコードでは以下のようなコードだったはず。 | |
my $version = try { | |
open my $fh, '>', \my $stderr; | |
local *STDERR = $fh; | |
$self->database_version; | |
}; | |
なんらかの理由で明示的に close を追加したさいに、なんかへんてこなかんじになってしまっただけだと思われる(debug 時にここに close をはさみたくなることはままあると思う)。 | |
my $version = try { ## ここのコードがhackishでよくわからん!!! | |
open my $fh, '>', \my $stderr; | |
local *STDERR = $fh; | |
my $v = $self->database_version; | |
close $fh; | |
$v; | |
}; | |
本来の意図されていたコードはこうだと思うし、そうじゃないと $version という変数名の意味がわからない。 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment