Perl で、配列中の重複レコードを削除するには?

配列の中にある重複するレコードを削除する場合、Perl なのでいろいろな方法があると思うが、以下のコードを試してみて欲しい。
#/usr/bin/perl -w

my @array = ('a', 'b', 'c', 'a');

my %count;
@array = grep {!$count{$_}++} @array;

print @array; # 出力は abc となる。

1;
配列の中にある重複するレコードを削除する場合、Perl なのでいろいろな方法があると思うが、以下のコードを試してみて欲しい。
#/usr/bin/perl -w

my @array = ('a', 'b', 'c', 'a');

my %count;
@array = grep {!$count{$_}++} @array;

print @array; # 出力は abc となる。

1;

Movable Type で、エントリーの通知ユーザーを受け付ける方法

この方法は Movable Type のヘルプからたどれる Movable Typeユーザー・マニュアル: 通知 にも書いてあるのだが、以下の部分をテンプレートに貼り付ければよい。
<form method="post" action="<$MTCGIPath$>mt-add-notify.cgi">
<input type="hidden" name="blog_id" value="<$MTBlogID$>" />
<input type="hidden" name="_redirect" value="<$MTBlogURL$>" />
<input name="email" size="20" />
<input type="submit" value="追加" />
</form>
注意しなければならないのは、mt-config.cgi の最後の方にでも、 EmailVerificationSecret <ここに好きなパスワードを記述> を設定しておかなければならない点。 EmailVerificationSecret なんて行は、私の mt-config.cgi にはなかったから、自分で追加した。場所はどこでもよい。あと、 EmailAddressMain youraddress@yourdomain.com も設定する必要がありそう。
この方法は Movable Type のヘルプからたどれる Movable Typeユーザー・マニュアル: 通知 にも書いてあるのだが、以下の部分をテンプレートに貼り付ければよい。
<form method="post" action="<$MTCGIPath$>mt-add-notify.cgi">
<input type="hidden" name="blog_id" value="<$MTBlogID$>" />
<input type="hidden" name="_redirect" value="<$MTBlogURL$>" />
<input name="email" size="20" />
<input type="submit" value="追加" />
</form>
注意しなければならないのは、mt-config.cgi の最後の方にでも、 EmailVerificationSecret <ここに好きなパスワードを記述> を設定しておかなければならない点。 EmailVerificationSecret なんて行は、私の mt-config.cgi にはなかったから、自分で追加した。場所はどこでもよい。あと、 EmailAddressMain youraddress@yourdomain.com も設定する必要がありそう。

PHP で、CGI 環境変数を表示するには?

PHP の場合は、CGI の環境変数は組み込み変数である $_SERVER に入る。以下の内容を env.php などのファイル名で保存し、ブラウザからアクセスする。
<?php

print '<p align="center"><font face="MS Trebuchet, Arial, Helvetica" size="9pt"><table>';
foreach(
$_SERVER as $key => $e) {
    print
'<tr><td>';
    print
"$key</td><td>$e";
    print
'</td></tr>';
}
print
'</table></p>';

?>
PHP の場合は、CGI の環境変数は組み込み変数である $_SERVER に入る。以下の内容を env.php などのファイル名で保存し、ブラウザからアクセスする。
<?php

print '<p align="center"><font face="MS Trebuchet, Arial, Helvetica" size="9pt"><table>';
foreach(
$_SERVER as $key => $e) {
    print
'<tr><td>';
    print
"$key</td><td>$e";
    print
'</td></tr>';
}
print
'</table></p>';

?>

Movable Type で、通知メールのテンプレートをカスタマイズする

Movable Type のメール通知機能でのテンプレートは、直接コードに埋め込まれているため、素人が変更するのは難しい。しかし Perl の知識があればなんとかなるだろう。以下の例では、サブジェクトはエントリーのタイトルそのままに、本文からエントリータイトルや日付など余計な部分を除いたもの。 /lib/MT/App/CMS.pm の 6618 行付近より。
<font color="red">=comment</font>
    $name = ('(' x ($fill_len/2)) . ' ' . $name . ' ' . (')' x ($fill_len/2));
    $body .= $name . "\n\n";
    my @ts = offset_time_list(time, $blog);
    my $ts = sprintf "%04d%02d%02d%02d%02d%02d",
        $ts[5]+1900, $ts[4]+1, @ts[3,2,1,0];
    my $date = format_ts('%Y.%m.%d %H:%M:%S', $ts, $blog);
    my $fill_left = ' ' x int(($cols - length($date)) / 2);
    $body .= "$fill_left$date\n\n\n";
    $body .= ('-' x $cols) . "\n\n";
<font color="red">=cut</font>
    if ($q->param('send_excerpt')) {
        $body .= MT::I18N::wrap_text($entry->get_excerpt, $cols-4, "    ","    ") . "\n\n";
        $body .= ('-' x $cols) . "\n\n";
    }
    $body .= $entry->permalink . "\n\n";
    $body .= MT::I18N::wrap_text($q->param('message'),$cols, '', '') . "\n\n";
    if ($q->param('send_body')) {
        $body .= ('-' x $cols) . "\n\n";
        $body .= MT::I18N::wrap_text($entry->text, $cols, '', '') . "\n";
    }
<font color="red"># 以下の部分をコメントアウトまたは修正
#   my $subj = $app->translate("[_1] Update: [_2]", $blog->name, $entry->title);
# ここまで
# 以下の部分を追加
    my $subj = $app->translate("[_1]", $entry->title);</font>
</font>
Movable Type のメール通知機能でのテンプレートは、直接コードに埋め込まれているため、素人が変更するのは難しい。しかし Perl の知識があればなんとかなるだろう。以下の例では、サブジェクトはエントリーのタイトルそのままに、本文からエントリータイトルや日付など余計な部分を除いたもの。 /lib/MT/App/CMS.pm の 6618 行付近より。
<font color="red">=comment</font>
    $name = ('(' x ($fill_len/2)) . ' ' . $name . ' ' . (')' x ($fill_len/2));
    $body .= $name . "\n\n";
    my @ts = offset_time_list(time, $blog);
    my $ts = sprintf "%04d%02d%02d%02d%02d%02d",
        $ts[5]+1900, $ts[4]+1, @ts[3,2,1,0];
    my $date = format_ts('%Y.%m.%d %H:%M:%S', $ts, $blog);
    my $fill_left = ' ' x int(($cols - length($date)) / 2);
    $body .= "$fill_left$date\n\n\n";
    $body .= ('-' x $cols) . "\n\n";
<font color="red">=cut</font>
    if ($q->param('send_excerpt')) {
        $body .= MT::I18N::wrap_text($entry->get_excerpt, $cols-4, "    ","    ") . "\n\n";
        $body .= ('-' x $cols) . "\n\n";
    }
    $body .= $entry->permalink . "\n\n";
    $body .= MT::I18N::wrap_text($q->param('message'),$cols, '', '') . "\n\n";
    if ($q->param('send_body')) {
        $body .= ('-' x $cols) . "\n\n";
        $body .= MT::I18N::wrap_text($entry->text, $cols, '', '') . "\n";
    }
<font color="red"># 以下の部分をコメントアウトまたは修正
#   my $subj = $app->translate("[_1] Update: [_2]", $blog->name, $entry->title);
# ここまで
# 以下の部分を追加
    my $subj = $app->translate("[_1]", $entry->title);</font>
</font>