目次
日ごろ不思議に思っていることを書いてみる
04.10.5 正規表現の $ マーク
結城さんの日記の、「Yuki::Diaryのデータファイル 2004年9月9日」に出てくる正規表現で、「/$\d+\.txt$/」というのが出てきます。
この、 $ マークで始まる正規表現ってどういう効果があるのか、どなたか分かりますか?
一番最後に出てくる $ マークは、そこでその行がおしまいになる。
っていうことで分かるのですが、最初のほうの $ マークの意味がわからず、気になっています。
ううむ。もう一度、man perlre してきます。
先頭にマイナスのつく識別子
以前から気になっていたのですが、Perl で例えば -foo という字句は文法的にどのような位置付けになるのでしょうか。
ファイル演算子のほかに、Perl/Tkなどでハッシュのキーとして使われているのを見て不思議に思いました。--SHIMADA
- うろ覚えで書いてみる。
マイナスの前のトークンが項なら2項演算子として働くかな?後が1文字の英字ならファイル演算子として働くかな?2文字以上なら単項演算子のマイナスかな?
演算子が置けない場所なら識別子(関数名かファイルハンドル?)か”裸のリテラル”として働くかな?ハッシュのキーは文字列なので裸のリテラルとして解釈されたかな?
でも$hash{foo}のfooに演算子はだめだっけ?
use strict;
sub test {
#配列で表示
print join("\n", @_), "\n";
#配列だからハッシュにもなりまっせ
my %hData = @_;
my ($sKey, $sVal);
while(($sKey, $sVal) = each(%hData)) {
print "KEY: $sKey = $sVal\n";
}
print $hData{-kaba}, "\n";
}
print $-, "\n"; #「セレクト中の出力チャネルの
#現在のページに残されている行数」らしいッス。
#Tk風?
test( -kaba => 'desu', -yon => 1);
[実行結果]
0
-kaba
desu
-yon
1
KEY: -kaba = desu
KEY: -yon = 1
desu
02.1.8 転送範囲とパーミッション
私はプロバイダーのホームページにYukiWikiを入れて動かそうとしているのですが、次の点について教えてください。
(1)ダウンロードして解凍したファイル全てを転送しなければならないか。
あまりにも数が多いので、中には差し当たって使わないファイルもあるのではないか。
特に、ディレクトリの中に収まっているファイルは転送しなくてもよいのではないか。
全部となるとサイズが大き過ぎるので。
(2)705または755のパーミッションに変更しなければならないのは、perl fileとcgi file だけで良いか。
転送した時はパーミッションが全て644になっているので。
- 補足説明
- CGIもPerlも全くの初心者で、しゃべっていることは全て聞きかじりです。
- YukiWikiは自宅サーバー(Win95)では順調に動いています。使っているPerlはWindows用ですのでパーミッションなど面倒なことは何もありませんでした。
- プロバイダーはBIGLOBEで,「perl の標準的なモジュールは提供していません。」となっています。
- 使おうとしているPerlのバージョンは5.6.1でUNIX用です。
以上、よろしくお願いします。(lkb)
(1)あまりにも数が多い、というのはよく分かりませんが、
ぜんぶを送る必要はありません。
yukimono.gifとかは送らなくていいです。
yukiwiki.cgi, jcode.pl, yukiwiki.gifだけでいいと思います。
(2)perl fileというのは何でしょう?
705(755)にするのはyukiwiki.cgiだけでOKです。
…というか、ドキュメント(readme.txt)を読んでくだされ。
結城
ごさん、結城さん、早速のご回答ありがとうございます。
ごさんが紹介された場所へは後程ゆっくり訪れるとして、とりあえず結城さんの疑問にお答えしておきます。
結論から言うと、私の言葉足らずでした。私の質問内容は全てPerlのことだけなんです。したがって「余りにも数が多い」というのは、実はダウンロードしたPerlを解凍したら飛び出してきたファイルの数のことなんです。プロパティを調べるとファイルだけで238個もあります。このほか中にファイルの入っているフォルダがたくさんあります。
CGIのスクリプトを作るつもりはなく、ただYukiWikiを動かしたいだけだから、それに必要なPerlは少なくてよいのではないかと素人判断をしたのです。
perl fileというのは使ったFTPのファイルタイプにそう書いてあったので真似しただけです。そのファイルの拡張子はplとなっていました。
以上です。(lkb)
YukiWikiを動かすために、まずはPerlのインストールから始めようとしているわけですね。これは単純にFTPするだけでは多分無理というか、CGIが使えると称するサーバーは大抵Perlがインストール済みですから、その必要はありません。
Wordで作った文書が、どのWindowsマシンでもダブルクリックだけで読めるのと同じことで、Perlがサーバーにインストールされてさえいれば、スクリプトファイル(この場合はYukiWiki)を適切に置くだけでCGIとして動作します。s_sawada
/usr/local/bin/perl しかないというプロバイダが存在します。@nifty もそうです。/usr/local/lib/perl 以下はありません。YukiWiki だけを動かしたい場合、どうすればいいかを http://hpcgi2.nifty.com/tokd/index.cgi?mycmd=read&mypage=HowToSetUpYukiWikiAtNifty に書いていますので参考にして下さい。--tokd
…以上のように有識者からコメントがついていますので、よろしくお願いします。
結城@他力本願
皆さん、沢山の方々から助言をいただきありがとうございます。紹介していただいたページの内容を参考にしながら試行錯誤してみます。(lkb)
01.1.10 解決しました
原因は、CGIの転送モードの間違いにありました。ASCIIモードでやり直したらあっさり解決しました。大変お騒がせして申し訳ありませんでした。これに懲りずに今後もよろしくお願いいたします。(lkb)
BIGLOBEにWIKIを設置にBIGLOBEのケースを少し書いてみましたので参考にしてください。
間違っているかもしれませんが。