トップページ⇒php
1001コメント332KB

Perlコーディング初心者質問スレ Part 51

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/07/27(木) 17:04:23ID:???
Perlのコーディングで困ってる人のスレです。

【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。

1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。

最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。

過去ログやお勧めサイトは >>2-10
0474nobodyさん2006/08/12(土) 02:17:54ID:???
代入知らないって事?
0475nobodyさん2006/08/12(土) 02:56:22ID:???
Net::FTPを知ってて代入を知らないなんて。
釣りとしか思えない。
0476nobodyさん2006/08/12(土) 06:21:24ID:???
wwwwwwwwww
0477nobodyさん2006/08/12(土) 06:22:39ID:???
このぼけ新しい!
0478nobodyさん2006/08/12(土) 15:50:42ID:???
splitを/ /(スペース)で取る場合、"hoge geho"などのクォーテーションで囲ってあるものも分割されてしまうのでしょうか?
0479nobodyさん2006/08/12(土) 16:29:13ID:???
>>478
聞く前になぜやってみないの?
0480nobodyさん2006/08/12(土) 16:34:26ID:???
これがゆとり教育の成果
0481nobodyさん2006/08/12(土) 16:43:55ID:???
>>466 丸一日の亀回答失礼。
o conf init
設定ファイルパスはo confすれば表示される。
0482nobodyさん2006/08/12(土) 22:08:26ID:???
>代入知らないって事?
>Net::FTPを知ってて代入を知らないなんて。
すいません。本当にわからないのです。
取得したサイズを変数に代入するにはどうしたらよいのでしょうか?
0483nobodyさん2006/08/12(土) 22:25:59ID:???
そんなエサに(ry
0484nobodyさん2006/08/12(土) 22:30:29ID:???
”=”って言えばいいの?
0485nobodyさん2006/08/12(土) 22:35:28ID:???
>>482
何がわからない? 右辺? 左辺?
それとももっと根本的なこと?
0486nobodyさん2006/08/12(土) 22:36:10ID:???
>何がわからない? 右辺? 左辺?
右辺です。
0487nobodyさん2006/08/12(土) 22:47:26ID:???
|| のかわりに or を使うと幸せになれるかもよ
0488nobodyさん2006/08/13(日) 00:42:28ID:BxCEpRlj
MLDBMを使ってDBファイルにハッシュの配列のハッシュを保存しようと思ってます、
そこで無名配列にハッシュのリファレンスを順番にpushしたいのですが上手くいきません。
なんででしょうか。

use strict;
use MLDBM qw(DB_File);
use Fcntl;

tie(my %save, "MLDBM", "data.db", O_CREAT|O_RDWR, 0644) or die "エラー";
push @{$save{$aaa}}, $hash;
untie %save;
0489nobodyさん2006/08/13(日) 01:20:16ID:???
>>488
MLDBMでぐぐったら1件目に答えが書いてあるように思うのは気のせいか?
0490nobodyさん2006/08/13(日) 02:45:17ID:???
$size = $ftp->size($testfile);
0491nobodyさん2006/08/13(日) 22:31:10ID:???
なんか休日になると伸びないような・・・
0492nobodyさん2006/08/13(日) 22:48:17ID:???
休日にしか伸びない夏厨の巣窟のようなスレよりはマシ。
0493nobodyさん2006/08/13(日) 23:43:12ID:???
五十歩百歩
0494nobodyさん2006/08/14(月) 00:24:45ID:???
夏厨以外がなんなのか知りたい・・・
0495nobodyさん2006/08/14(月) 16:23:58ID:???
>>473は多分、次のように記述したんだろうなと思う。

$size = $ftp->size($testfile) || print "サイズ取得失敗";

つまり、優先順位がわからなかったかったものと思われる。

>>473は、次のうち好きなのを選んでね。

$size = $ftp->size($testfile);
$size || print "サイズ取得失敗";

($size = $ftp->size($testfile)) || print "サイズ取得失敗";

$size = $ftp->size($testfile) or print "サイズ取得失敗";

エスパーからの回答でした。
0496nobodyさん2006/08/14(月) 16:27:09ID:???
ちっ、>>487で既出だったか
0497nobodyさん2006/08/15(火) 11:24:02ID:???
orだと優先順位が低いんだっけか。
結構気づきにくいところだね。
0498nobodyさん2006/08/15(火) 15:09:13ID:amgg11pz

ヒアドキュメント内で関数は使えないのでしょうか?

$a = 1;

print <<DOC;
元の値:$a
処理後の値:&hoge($a)
DOC

sub hoge{
my $tmp = shift
$tmp++;
return $tmp;
}

0499nobodyさん2006/08/15(火) 15:25:07ID:???
>>498
@{[ hoge($a) ]}

邪道だけどね。
0500nobodyさん2006/08/15(火) 16:44:41ID:???
perl6ではできるようになるらしい
0501nobodyさん2006/08/15(火) 17:18:05ID:????BRZ(1002)
                                               、.,ri、
                                          l''''レ   :l|゙'rレ,,゙'r,      .,,,,,,,
                                          l .l    ゙'!,,゙レヘ!"     :| |
                                          l .l___,,~           | :|      .,,,
                                     'l~~~~~~ ̄ .,,,,,_,,,, .|        │ :|,,irrr‐'''''"~.゙'!i、
                                      ̄ ̄ ゙̄,l リ: :   .| :|    ィー'''''' ̄` .,,,,,ir-ー''''}" ,r"
  '|'|    .,,,,       l|,,,,―i、   ,,,,,,i、,,,、  .,ri、  'l'ト       │ ,l゙    | |    =--'''''"| |    ,i" ,r"
  .l | ._,,, | l   '{\   _,,二,、  ,rlレ''l''l'''!i,'i、  l゙,| ,-rr,|.|,,,,,i、    .,l゙ .,l゙    .| .|        | :|   ,i" ,i"
  .,,l`|,|レr" .|.|    .'Lト .'l|レー'''=゙L .,l゙,i´ l゙,!  .リ゙l  |.| .゙~ ̄|:|     .,,i´ ,/     | l゙        | |   .~'〃
: ,i'レ'~    .|.| ,r,  ゙l,,}    .,"| l..l、,ト,i´ .,!,レ | | ,,r-ノ.|,、   .,,i'" ,r"  :   ..,,i´.レ        l゙ │
: リリ----r, ゙l,,l,,,i"      ,,,,r!二  ゙l,,,,レ゙ ,r',,レ"  l゙.| .l|'ニ,l゙,!!ii,= .,〃 ,,r"   .゙l~゙゙゙゛.,,/            リ, .゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙レ
 .~゙゙゙゙゙゙゙゙゙゙"  ``       ゙='''"      `~`   `゙゛ `"'''~    ゙'!'"     "'''''''~゛          ゙~''''''''''''''''''''''''"
0502nobodyさん2006/08/15(火) 19:34:41ID:???
>>499
確認しました。出来るんですね。
でも、邪道なのか・・・。

大量に変数あるんで、いつも困ってたんだが、
おとなしく普通にするかな。
配列にして、ループで処理か。
0503 ◆TWARamEjuA 2006/08/15(火) 19:52:44ID:????BRZ(3010)
$a = 1;

printf <<"DOC", $a, &hoge($a);
元の値:%d
処理後の値:%d
DOC

みたいな?
0504nobodyさん2006/08/15(火) 19:56:22ID:???
ヒアドキュメント内は知らないけど現行のPugsだと
"処理後の値: &hoge()";
or
"処理後の値: {hoge()}";
でちゃんと展開されるよ。
0505nobodyさん2006/08/15(火) 21:03:52ID:???
perl でCGI.pmをつかってCGIを作っていますが、
tableの行をforeach文で増やしたい場合は、どのようにするのが適切でしょうか?
  ・
  ・

foreach (@abc){
 $q->Tr(
      $q->td($q->b("xxx")),
      $q->td($q->b("yyy"))
     )
}
  ・
  ・

のようなカタチでやってみると、うまく表示が出ません。
この描き方は間違っているのでしょうか?
ご教授お願いします。
0506nobodyさん2006/08/15(火) 21:42:27ID:???
>>505
printが抜けてるとか。
05075052006/08/15(火) 21:59:06ID:???
>>506
レスありがとうございます。

print は一番初めにかいて、
print $q->start_html,
$q->start_table,
foreach (@abc){
 $q->Tr(
      $q->td($q->b("xxx")),
      $q->td($q->b("yyy"))
     )
}
$q->end_table,
$q->end_html;
の用に利用していました。

ここで、foreach文を使うときは、foreach文のブロック部分と、それ以外の部分のところでつかうprintを分けてみたらできました。
506さんのレスで気がつくことができました。
ありがとうございます。
0508nobodyさん2006/08/15(火) 22:15:10ID:OtEfXNbt
my @arr = <FH>;
my $sca = join '',@arr;

どうしてもこんな処理をしたいんですけど、
もっとスマートに書く方法はありますか?

以前は
foreach my $line(<FH>){
  chomp;
  $sca = $line;
}
としてたんですが、
うまい方法をご教授願います
05095082006/08/15(火) 22:17:00ID:OtEfXNbt
訂正

× $sca = $line;
〇 $sca .= $line;
0510nobodyさん2006/08/15(火) 22:25:47ID:???


my $sca = do {local $/; <FH>};

これはどう?
05115082006/08/15(火) 22:47:02ID:OtEfXNbt
>>510
doは使った事がないので、今はあまり理解できてませんが参考になりました。

ありがとうございます。
0512nobodyさん2006/08/16(水) 00:10:37ID:???
read(FH, $buff, (-s FH));
これじゃなにか不具合でも?
0513nobodyさん2006/08/16(水) 00:14:34ID:???
>>508

my $sca = join("", <FH>);
05145082006/08/16(水) 00:29:17ID:???
>>512
そんな方法があったとは(゚д゚)
これに決めました。ありがとうございます。

>>513
どうしても空文字列を使うのが気に入らないので、質問させて貰ったんです。
すみません
0515nobodyさん2006/08/16(水) 00:50:21ID:???
use IO::All;で、@lines = io('file.txt')->chomp->slurp;というのもあるね。
0516nobodyさん2006/08/16(水) 10:22:03ID:????BRZ(1002)
$/ = undef;

( ^ω^)
0517nobodyさん2006/08/16(水) 10:58:24ID:???
File::Slurp使うとか
0518nobodyさん2006/08/16(水) 11:20:10ID:???
ただたんにファイルを読み込むだけなのにモジュールを使うとか、バカじゃなかろうか…
05195082006/08/16(水) 12:08:18ID:???
508です。
>>512の方法を使わせて貰ったんですが、
その後に
$sca =~ s/#command#/$hash{'command'}/g;
のような処理をしたいんですが、
マッチさせたい部分が
#com\n\tmand#
のようになってしまったらマッチできません。
$sca =~ s/\n|\t//g;
のように逃げる事も可能ですが、
さらにその後に
HTMLとして出力するのでソースが崩れてしまいます。
#command#等の種類が多いので
s/#(\r|\n|\t)?c(\r|\n|\t)?o(\r|\n|\t)?m(\r|\n|\t)?m(\r|\n|\t)?a(\r|\n|\t)?n(\r|\n|\t)?d(\r|\n|\t)?#/$hash{'command'}/g;
これじゃ酷いです。
長くてすみませんが解決策があれば教えてください。
0520nobodyさん2006/08/16(水) 12:29:16ID:???
$sca =~ s/#([^#]+)#/&cmd($1)/eg;
0521nobodyさん2006/08/16(水) 12:41:14ID:???
>>520
<a href="index.html#hoge">
とか1つでもあったら即座に破綻だなそれw
05225082006/08/16(水) 13:57:25ID:???
>>520
なるほど(゚∀゚)

>>521
コマンド名を見直せば解決できそうです。
あと、対応してないコマンドだったら&cmdからreturn $_[0];でぉkですね。
0523nobodyさん2006/08/16(水) 15:28:27ID:???
#command# っていうのがあらかじめ決まってる文字列なら
そもそもそのなかに改行やタブが入るのを
許す必要なくね?
0524nobodyさん2006/08/16(水) 16:55:37ID:4j1cx25o
183,info...
159,info...
115,info...
090,info...
061,info...
048,info...
019,info...
003,info...

という風に先頭の数字が降順に並んでいるデータに
降順のルールを破らずに任意の数字(既存の数字は除く)のデータを追加したいんですが、
なかなか良い方法が思いつきません。
新しいデータを単純に行頭に追加してデータ全体をソートする方法で良いんでしょうか?
ちなみにデータ数(行数)は500前後あります。
アドバイスよろしくお願いします。
0525nobodyさん2006/08/16(水) 17:02:45ID:???
まずやってみろって・・・
0526nobodyさん2006/08/16(水) 17:03:17ID:???
それなんて課題?
まずやってみろって・・・
05275242006/08/16(水) 17:15:20ID:???
>>525-526
すみません。
>新しいデータを単純に行頭に追加してデータ全体をソートする方法で良いんでしょうか?
というのは、「この方法で出来ますか?」という意味ではなくて、
「この方法は回りくどい方法じゃないですか?もっとスマートな方法があればアドバイス下さい」
という意味です。
自分はこの方法しか思いつかなかったんですが、
もしかしたらもっと良い方法があるんじゃないかと思って書き込みしました。
ちなみに課題等でもありませんし、コードまで書けというつもりもありません。
「こういう方法でやった方が良い」というアドバイスがあれば教えて欲しいと思っただけです。
0528nobodyさん2006/08/16(水) 17:52:25ID:???
ヒント:連想配列
0529nobodyさん2006/08/16(水) 17:56:34ID:???
なぜソートが要るのか分からん。
0530nobodyさん2006/08/16(水) 18:01:59ID:???
数字でソートするんじゃないのか?
0531nobodyさん2006/08/16(水) 18:15:18ID:???
はじめからb-treeにしておくとか
0532nobodyさん2006/08/16(水) 18:30:15ID:???
「除く」とは、取り除くってことね。
それなら納得。
0533nobodyさん2006/08/16(水) 18:34:53ID:???
reverse sort($new,@data);
これをスマートにしろと?
05345242006/08/16(水) 18:52:56ID:???
レスありがとうございます。

>>528
連想配列を使ってソート?ということでしょうか。

>>531
b-tree構造というものを初めて知りました。
これはとても役立ちそうです。
これから調べて検討したいと思います。

>>532
>任意の数字(既存の数字は除く)
は「データ中に既に存在している数字を除く任意の数字」という意味です。
分かりにくくてすみません。

>>533
「ソートする方法の中でよりスマートな方法は何ですか?」
ということではなく
「ソートする方法以外でよりスマートな方法はありますか?」
という趣旨で質問しました。
ちなみに、私はソートなら以下のような方法でやろうと考えていました。
push(@data,$new);
@data = map {$_->[0]}
sort {$b->[1] <=> $a->[1]}
map {[$_, split /,/]} @data;
0535nobodyさん2006/08/16(水) 19:18:55ID:???
>>524
更新、参照の頻度等を考慮して適したデータ構造を利用することがスマートなのだよ。
データ構造を勉強したことがなさそうだから、おとなしくソート使っとけ。
0536nobodyさん2006/08/16(水) 19:39:04ID:???
先頭の数字がユニークなら連想配列が見た目綺麗かも
0537nobodyさん2006/08/16(水) 19:41:14ID:???
>>509,519
コマンドなりフラグなりに改行などを許すこと事態が駄目でしょ
0538nobodyさん2006/08/16(水) 19:48:30ID:???
=~ s/#([a-z0-9_]+)#/$hash{$1}/g;

コマンドは英数字のみ許可すればいい
05395082006/08/16(水) 20:10:41ID:???
>>523 >>537
その通りですね。

>>538
abc#cmd_1#def#cmd_2#ghi
だった場合に#def#もマッチする気がするんですが…。

あとは自分で解決できそうです。
皆さんありがとうございました。
0540nobodyさん2006/08/16(水) 20:13:39ID:???
(゜Д゜)ポカーン
05415242006/08/16(水) 20:40:08ID:???
>>535
b-treeがらみでデータ構造について読んでみましたが
かなり奥が深いので腰を据えた勉強が必要なようですね。
そもそもデータの「構造」という視点を持っていなかったので
その辺の収穫が大きかったと自分では思っています。
少なくとも今扱っているデータ量だとソート力技でやっても
大きな問題はなさそうなので、おとなしくソートでやろうと思います。

>>536
ソートの方法の中身についてはハッシュも含めて色々検討したいと思います。


ありがとうございました。
0542nobodyさん2006/08/16(水) 20:53:48ID:???
入力フォームにcsvのユニークのデータを入力して、
該当する一行を削除するcgiを作っているのですが、
うまくいきません。
csvを開いたときの処理はこう書いています。

&fileopen(CSV,"<",$csv);
while ($line = <CSV>)
{
if($line =~ m/^"$no",/)
{
$line =~ s/$line//;
}
else
{
$line = $line;
}
print CSV "$line";
}
close(CSV);

もし、入力した$noと読み込んだ行の先頭がマッチしたら、
その行を空白にし、そうでなければ、そのままCSVに出力するという
流れなのですが、どなたかご教授お願いします。
0543nobodyさん2006/08/16(水) 21:18:04ID:???
固定長データのファイルじゃないデータファイルに対して読み書きを同時に行うこと自体が間違いかと。

open(INFH, $csvin);
open(OUTFH, '>'.$csvout);
while(my $line = <INFH>){
  chomp($line);
  if($line !~ /^$no/){
    print OUTFH . "\n";
  }
}
close(INFH);
close(OUTFH);
0544nobodyさん2006/08/16(水) 21:24:06ID:???
>固定長データのファイルじゃないデータファイルに対して読み書きを同時に行うこと自体が間違いかと。
これって、マジ?
何が問題?
05455422006/08/16(水) 21:25:08ID:???
>>543
ありがとうございます。
固定長データのファイルじゃないというのは
どういうことなのでしょうか?
アホっぽい質問ですみません。
0546nobodyさん2006/08/16(水) 21:36:30ID:???
固定長のデータって書き方が間違いだな。 1レコードが固定長のデータファイルと訂正。

ちゃんと考えて読み書きするならいいが、
現在位置から30バイト読み取り、30バイト戻って31バイト書き出せば次のデータの1バイトが欠落するよね?

で、1行ずつ読み取って処理するのにprintしちゃったら正確な次の行が読み取れませんよと。
(seekつかって確かめてみるとわかります)
0547nobodyさん2006/08/16(水) 21:40:17ID:s8jUvrs4
「2004125」と言った数字が入ったファイルがあるのですが、
これを読込んで、「2004年12月5日」という形にして表示させたいのですが、
どうやっていいか分からず困っています・・・・・・。よろしくお願いします orz
0548nobodyさん2006/08/16(水) 21:47:12ID:???
>>547
それ、1月25日と、12月5日の差はどこで見分けるの?
0549nobodyさん2006/08/16(水) 21:47:13ID:???
>>547
「2004年1月25日」の場合の数字は何?
0550nobodyさん2006/08/16(水) 21:49:13ID:???
>>548-549
失礼 orz
では「20041205」を「2004年12月05日」ってのはできるでしょうか・・・・・・?
0551nobodyさん2006/08/16(水) 21:51:23ID:???
>>546
あぁ、なるほど。
1行ずつ読み取って書き込みという処理しないから考えたことなかった。
ちなみに$noをマッチングさせる方法だと
0とか1とか入れたらどうなるんだろ。
csvデータで1コ目のセルには$noの値のみが入っているという前提に立つと
open(FH, "+< $csv") or die;
flock(FH,2);
while(my $line = <FH>){
my @tmp = split(/,/,$line);
if($tmp[0] eq $no){$line = '';}
push(@data,$line);
}
seek(FH, 0, 0);
print FH @data;
truncate(FH, tell(FH));
close(FH);
オレならこう書くかなぁ。
0552nobodyさん2006/08/16(水) 21:51:35ID:???
ツッコミまくりでワロタ
0553nobodyさん2006/08/16(水) 21:54:31ID:???
>>550
unpackに一票。
0554nobodyさん2006/08/16(水) 21:55:20ID:???
Perlに限ったことではないと思うんですが、
例えば$flag = 1のときはエラーメッセージを出して処理終了、
そうでなければ処理続行、というとき

if($flag){&error;}
その後の処理

と書くべきか

if($flag){
&error;
}else{
その後の処理
}

と書くべきか、どちらが好ましいんでしょうか?
0555nobodyさん2006/08/16(水) 21:57:07ID:???
確か前スレにも全く同じ質問があったような。
$date = "20041205";

$date =~ s/^(¥d{4})(¥d{2})(¥d{2})/$1年$2月$3日/;
or
sprintf("%d年%d月%d日", unpack("A4A2A2", $date));
0556nobodyさん2006/08/16(水) 21:58:19ID:???
>>550
if(/^(\d{4})(\d{2})(\d{2})$/){
  print "$1年$2月$3日";
}
0557nobodyさん2006/08/16(水) 21:59:04ID:???
かぶったorz
05585422006/08/16(水) 22:00:16ID:???
>>546
>>551
ありがとうございます。
はやく色々な方法でperlを使いこなせるようになりたいです。。
0559nobodyさん2006/08/16(水) 22:01:29ID:???
>>555-556
本当ありがとうございました orz
0560nobodyさん2006/08/16(水) 22:04:13ID:???
>>554
最近
$flag and die "hogehoge";
みたいな書き方が好き。
next とかは next if ($flag); が読みやすい気がする。

0561nobodyさん2006/08/16(水) 22:04:47ID:???
好みかと。

俺は、elseの処理が長くなるなら前者の方法を取るし、数行で終わるならelseの中に書いちゃう。

>550
my $aa = "20060703";
($year, $month, $day) = $aa =~ /(\d{4})(\d{2})(\d{2})/;
print $year, $month, $day;
0562nobodyさん2006/08/16(水) 22:06:09ID:???
>>561
ありがとうございました orz
0563nobodyさん2006/08/16(水) 22:08:52ID:???
>>560-561
処理の速さとかに影響があるのかと思って神経質になってましたが、
単純に可読性とか好みだけで選んで良かったんですね。

>$flag and die "hogehoge";
エラー処理を別に書かなくて良いから便利そうですね。
0564nobodyさん2006/08/16(水) 22:09:55ID:???
どうも条件文とかを後に書くやり方は慣れない

最近やっと = ? : ; がしっくり来るようになった程度だ
0565nobodyさん2006/08/16(水) 22:11:23ID:???
>>555>>556>>561
簡単な処理なのに、書き方ってたくさんあるんだな。
0566nobodyさん2006/08/16(水) 22:20:25ID:???
>>563
変数のスコープに注意すると良いと思う。
0567あぼーんNGNG
あぼーん
0568nobodyさん2006/08/16(水) 22:30:47ID:???
(^ω^ )………
0569 ◆TWARamEjuA 2006/08/16(水) 22:41:45ID:????BRZ(3010)
既に登録済みですね(呆)
0570nobodyさん2006/08/16(水) 22:59:30ID:???
アクセスするときは、/invitation以降を削除したほうがいいよ
0571nobodyさん2006/08/17(木) 06:09:44ID:???
>>564
慣れてくると快感になるよ。

というか、perlstyle にあるけど、その行で何をするか一目でわかるのが大事で、
それによって条件を前に書くか後に書くか分けるといいと思う。
0572nobodyさん2006/08/17(木) 12:25:28ID:nQZCnFuY
質問です。
変数の名前やルーチンの名前。
オブジェクトの名前。ハッシュのキー。

&form_getなどとするときにつなぎはアンダーバーとハイフンとどちらがいいでしょうか?

ハイフンはダメだったようなきも擦るのですが、
それとハッシュのキーでは逆にアンダーバーがダメでしたのでしょうか?

クォートして$form{"test_test"}とすればよかったですかな?

なんというか。アンダーバー・ハイフン戦争が始まったのです。
画像やファイルなどのつなぎをどちらにするか、
パール内での色々な名前のつなぎをどちらにするか。
そしてcss・・・

迷いが迷いwうみ。
どちらかに統一できないものかと・・
dgんwぷ2つびん2pつb2

たすけてくさい。
0573nobodyさん2006/08/17(木) 12:32:40ID:???
もの凄いのが来てるなw
多分統一は無理。どこかで折り合いをつけなされ。

Perlの中とその他を完全に切り離して考えることが一番なので、
フォルダ・ファイル名からhtmlのid属性の値などは全てハイフンでやり、
Perlの中では臨機応変に。
■ このスレッドは過去ログ倉庫に格納されています