作者: WATANABE Hirofumi
日時: 2007/3/1(15:31)
わたなべです。

On Thu, Mar 01, 2007 at 02:51:58PM +0900,
 Bruce. wrote:

> while(my $row = $sth->fetchrow_hashref()){
>     print "<a href=\"$row->{link}\">$row->{title}</a>\n";
>     if($row->{logo}){
>         print "<p><img src=\"$row->{logo}\">$row->{subtitle}</p>\n";
>     }elsif($row->{icon}){
>         print "<p><img src=\"$row->{icon}\">$row->{subtitle}</p>\n";
>     }else{
>         print "<p>$row->{subtitle}</p>\n";
>     }
>     print "<p>$row->{updated}</p>\n<hr>\n";
> }
> 
> この辺が気になります。
> 
> logoとiconのパスを出力しているであろう行をみると、ハッシュのキーの部分
> しか違わず、すげーまとめたくなります。
> とはいうものの、うまくまとめられないような気も。
> どうするのがいいんでしょうねえ?

まとめるとしたら、こんな感じかな。

while(my $row = $sth->fetchrow_hashref()){
    print "<a href=\"$row->{link}\">$row->{title}</a>\n";
    my $src = $row->{logo} || $row->{icon};
    my $img = $src ? "<img src=\"$src\">" : "";
    print "<p>$img$row->{subtitle}</p>\n";
    print "<p>$row->{updated}</p>\n<hr>\n";
}

golfじゃないのでこのくらいで。