A 回答 (12件中1~10件)
- 最新から表示
- 回答順に表示
No.12
- 回答日時:
あ, test2.pl を付け忘れました.
-------------------- ここから --------------------
#!/usr/local/bin/perl
print "$ARGV[0]\n";
exit;
-------------------- ここまで --------------------
です.
正直なところ, 「Unix系 OS」の正体はわからないしどんなシェルを使っているかもわからないので, どうしようもないですねぇ.
この回答への補足
まったく解決にたどりつく様子はないですが、別の質問を投稿しようとしたら「アクティブ質問数の上限に達しています」と怒られたので、これを閉め切らざるを得ません。
また、まったく同じ内容で後日に質問します。
No.11
- 回答日時:
#9 の回答のところですが, 以下に示すように手元では再現できません. 個人情報が入っているのでプロンプトは手を入れましたが, 基本的に script の出力と同じです.
-------------------- ここから --------------------
Script started on Wed Feb 13 18:08:23 2008
> zsh
> perl test2.pl 'yInH4u$a6Fja/uW$gk8.Nf3t'
yInH4u$a6Fja/uW$gk8.Nf3t
> exit
> bash
$ perl test2.pl 'yInH4u$a6Fja/uW$gk8.Nf3t'
yInH4u$a6Fja/uW$gk8.Nf3t
$ exit
> csh
/etc/.cshrc: No such file or directory.
% perl test2.pl 'yInH4u$a6Fja/uW$gk8.Nf3t'
yInH4u$a6Fja/uW$gk8.Nf3t
% exit
Script done on Wed Feb 13 18:08:39 2008
-------------------- ここまで --------------------
ちなみに uname -a の出力は
Linux localhost 2.6.22.1 #1 SMP Mon Jul 16 14:05:02 JST 2007 x86_64 Intel(R) Xeon(R) CPU 5160 @ 3.00GHz GenuineIntel GNU/Linux
です.
bash -c "perl test2.pl 'yInH4u$a6Fja/uW$gk8.Nf3t'"
だと
yInH4u/uW.Nf3t
になるんですが.
というか, そもそも「シングルクオートで変数展開しようとする」シェルの存在が理解できない.
No.10
- 回答日時:
質問者による ANo.9 への補足は,ANo.6~8 への回答になっていません。
なぜ前段階で変数展開されるのか知りたいから,
(0) 何らかのシェルを起動して
という所からすべて提示してほしいと言ったのです。
重要だと思われるこの部分,質問者の判断で省かれてしまっています。
>--- スクリプト全行開始
>--- スクリプト全行終了
などの,コンピュータが出力したのではない質問者による補足,も不要です。
(もしかして catコマンドによるソースコードの画面表示ではないのですか?)
ANo.6の繰り返しになりますが,
シェルが表示するプロンプトも,あなたが入力したすべてのコマンドも,すべて込みで,一連の画面表示をまとめて提示していただくわけにはいきませんか。
No.9
- 回答日時:
(1)正確な環境を書きましょう。
Unix系OSなんて括りの環境は星の数ほどあります。
(2)正確に問題を切り分けましょう。
当該の文字列が入った変数を、絶対に変数展開されない方法(unpackでバイト単位で表示する等)で出力してみましょう。
'$'(0x24)が含まれていなければ、perlスクリプトは『問題なし』です。
(3)事象を正確に報告する。
他の回答者が仰るように、前処理の段階で変数展開されていたら、perlスクリプト側での対処は『不可能』です。
これを正確に、根拠を付けてに報告することもエンジニアの仕事です。
この回答への補足
--- スクリプト全行開始
#!/usr/local/bin/perl
#
# test2.pl
print $ARGV[0];
exit;
--- スクリプト全行終了
で
perl /path/to/test2.pl 'yInH4u$a6Fja/uW$gk8.Nf3t'
とするとやはり
yInH4u/uW.Nf3t
と出力されてしまいます。
ということで
> 前処理の段階で変数展開されていたら、perlスクリプト側での対処は『不可能』
ということのようです。
No.8
- 回答日時:
No.5さんのご指摘と
>たとえばコマンドライン引数です。
ということから想像すると,シェルの展開だと思うんですけどね
Ubuntu7.10のbashにperl5.8.8です.
#hoge.pl
print $ARGV[0];
としておいて
perl hoge.pl "6$ABC/"
とすると確かに
6ABC
としかでません.シェルが展開してるわけですから.
perl hoge.pl '6$ABC/'
なら,展開しないので,6$ABC/ とでてきます.
# test.pl
$a = 'yInH4u$a6Fja/uW$gk8.Nf3t';
print $a;
これを素直に実行して,
yInH4u$a6Fja/uW$gk8.Nf3tとでないことは
ありえないでしょう.
この回答への補足
コマンドライン引数は一つの例ですが、最初に申しましたように入力に対して前処理を指定できないので、引用符云々は別問題として考えてもらえませんか。
補足日時:2008/02/13 09:36No.7
- 回答日時:
えっと....
差し支えなければ, 「実際にどのように Perl スクリプトを実行しているのか」を, 渡す引数を作るところを含めて書いてもらえませんか?
最悪「シェルが展開するので Perl スクリプトとしては対処不可能」という可能性もありますので.
No.6
- 回答日時:
念のために。
ANo.2のように,一連の画面表示をまとめて提示していただくわけにはいきませんか。
ANo.3では,Linux環境でもその現象は起こらないと報告されていますので。
(0) 何らかのシェルを起動して
(Windowsのように標準シェルはcmd.exeだけではないので)
(1) Perlのversionを確認
(2) cat /path/to/test.pl
(3) perl /path/to/test.pl
という一連の流れです。
No.4
- 回答日時:
$a = 'yInH4u$a6Fja/uW$gk8.Nf3t';
ダブルクォートで実行していませんか? 先頭に use strict; を付けて
実行してみてはどうでしょう。変数名と認識されているならエラーになる
はずです。
この回答への補足
二重引用符にはなっていません; なぜなら、下記は試したスクリプトそのものです。
それと、最初に書きましたように、実際の使用では、$a = 'なんたらかんたら'; と書き出したりはしませんし、ドル記号の数や位置、アルファベットや数字はスクリプトの走る回ごとに異なりますので、単引用符も二重引用符もないのです。
その線でお願いします。
No.3
- 回答日時:
手元の Linux (Gentooベース) + perl 5.8.8 とか FreeBSD + perl 5.005 でも, 展開
されず期待された動作をしてます.お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 統計学 質問です! 10 2022/08/18 10:16
- Access(アクセス) capeofdragonと申します。 Access2016を使っております。 あるフォームがあり、テ 2 2022/09/09 13:18
- Excel(エクセル) GETPIVOTDATAにかんして 1 2022/04/20 21:03
- 政治 私の発明した「二階建て漢字」は使えるでしょうか? 3 2023/02/08 16:40
- Java Java 南京錠 2 2023/02/04 11:46
- JavaScript カラーミーショップのsectionループ内で、[引数][戻り値]ありの関数的な処理を行いたいです。 1 2022/05/07 19:39
- Excel(エクセル) Excelの関数についておしえてください。 3 2023/04/20 18:36
- Excel(エクセル) エクセル VBA セルの結合 2 2022/09/07 11:48
- 高校 対数方程式につきまして 4 2022/05/05 07:55
- Excel(エクセル) エクセル、日々の集計整理方法。(再送です。) 5 2022/10/02 00:19
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ターミナルで特定の文字と文字...
-
Perlで縦横変換のような事をし...
-
テキストファイルで提出とは?
-
アルファベットに付いて質問し...
-
#!/usr/bin/perlで書きだしたCG...
-
Perlのエラーについてご教授く...
-
perlのflock関数でロックをかけ...
-
AI sisterとは、偽物の人ですか?
-
bashスクリプト
-
ファイルアイコンの左下に緑の□...
-
perlプログラミング 空白行削除
-
perlでリテラル値はメモリにど...
-
perlで2次元配列をサブルーチ...
-
Perlで時間の計算
-
perlについて
-
perlのrequireの動き方について...
-
perlの構文でカンマの意味が分...
-
perlについての質問
-
perlのプログラミング 部分入れ...
-
ペプシコーラとコカ・コーラとD...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Cからシェルを起動し返り値をハ...
-
powershellで関数名を変更する...
-
UWSCのスクリプトにラグが発生...
-
"JScript"が見つかりません!
-
[ASP]条件によってインクルード...
-
VBSで自動ログインについて
-
VBSを利用して、IEのタブを自動...
-
VBScriptでCurrentDirectoryを...
-
Perlのライセンス
-
vbs: オブジェクトがコレクショ...
-
Perlスクリプトで文字化けして...
-
シェルでsyntax errorがでてしまう
-
awkの処理速度を改善したい
-
ADサーバにおけるログインID,PC...
-
cygwinでcshが認識されず困って...
-
ディスクの空き容量を求める(W...
-
crontab での実行結果が違う
-
ホームページ作成でCGI、VBスク...
-
perlスクリプトのブラウザURLか...
-
perl起動方法
おすすめ情報