• ベストアンサー

はじめまして。

はじめまして。 現在、無料で配布されているスクリプトを見て、perlを勉強しています。 以下の内容についてですが、どうしても分からないのでどなたか教えてただけませんか。 $test=$_ ? "abc":"def"; $_が0の場合は$testは「def」になり、$_g1の場合は$testは「abc」となるのですが、ここで使われている「?」と「:」の意味というか使い方が分かりません。 「?」はメタ文字かと思って調べてみましたが、それらしい内容のサイトを見つけられませんでした。 どなたかよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

「三項演算子」でどうぞ。

hana43
質問者

お礼

早速ありがとうございます。 三項演算子で検索したら多くの参考サイトが見つかりました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • perlでのcsv形式のテキストファイルの変換

    perlを使用してcsv形式のテキストファイルを下記のように変換したいと思っています。 【変換前】 10, abc , def , ghi ,jkl    ----1行目 10, abc , def , aaa, bbb   ----2行目 10, abc , def , ccc , ddd  ----3行目 11, abc , def , eee , fff   ----4行目 11, abc , def , aaa , ggg ----5行目 11, zzz , def , aaa , ggg  ----6行目 12, abc , def , aaa ,ggg ----7行目 12, zzz , def, aaa , ggg   ----8行目 【変換後】 10, abc , def , ghi ,jkl    ----1行目 11, abc , def , eee , fff   ----4行目 11, zzz , def , aaa , ggg  ----6行目 12, abc , def , aaa ,ggg ----7行目 12, zzz , def, aaa , ggg   ----8行目 変換内容はcsv形式のテキストファイルで、”,”で区切った先頭3列が 前の行の先頭3列と同じならその行は出力しない、といった 変換をしたいと思っております。 (例えば2行目ですと先頭3列は10, abc ,defになっており、  1行目の先頭3列と同じ文字列になっているためこの行は出力しない) 当方、Perl初心者で上記のようなことがPerlでできるかも よくわかっておりません。 そこで、上記のような変換はPerlで可能なのか、そしてもし可能であるのなら どのようにPerlで記述すればできるのか教えていただけないでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • googleで検索

    googleで、以下のような文字を検索するときは どうすればよいでしょうか? 「$::abc であって、かつ、「abc」しかない文字を含まない 「*abc」 であって、かつ 「abc」しかない文字を含まない 「--abc」 であって、かつ 「abc」しかない文字を含まない 「--abc-def」であって、かつ 「--abc」「--def」 とか、「abc」「def」 でないこと 「(コメント)」であって、かつ 「コメント」でないこと 「$#」 であって、 「$#xa」を含まないこと

  • Rubyにおける正規表現(一致しない)

    Rubyを使って、テキスト処理をやっています。 どうしても、うまく行かないところがあります。 サジェスチョンをお願いします。 正規表現にて、 2つの条件フラグが成立していて、かつ、特定の文字列を含まないという条件です。 1行の内容は、textに入っています。 if (myFlag1==1) && (myFlag2==1) && (!/abc def/) then xxxxxxxx end (!/abc def/)は、perlでの表現です。Rubyでは、少なくとも (!/abc def/=~text) かな、と考えましたが、ダメでした。 (/abc def/!=text) でも、だめでした。 宜しくお願いいたします。

  • 配列で分かりません

    教えてください。プログラミング初心者です。 以下の配列があった場合に最終行の$abc[ ] = $abc;は何を代入しているのでしょうか? $abc = array( ); $abc[ ] = $ def; $abc[ ] = $ abc; 宜しくお願いします。

    • ベストアンサー
    • PHP
  • エクセル関数:右側の文字列を抜き出す方法

    エクセル初心者です。 文字列の抜き出す方法で悩んでいます。 たとえば、A1~A5までに下のような 文字列が順に入っているとします。 C:\abc\TEST1.DOC C:\abc\def\TEST2.DOC C:\abc\def\ghi\jkl\TEST3.DOC C:\abc\def\ghi\TEST4.DOC C:\abc\def\TEST5.DOC これらの文字列の一番右側の'\'以降の文字列 (TEST1~5.DOC)を、B1~B5のセルに 出したいと思っているんですが できるのでしょうか? RIGHT関数や、LEN関数、FIND関数を使って できそうな気がするのですが どうも良い方法が思いつきません。 よろしくお願いします。

  • 2次元配列について

    プログラミング初心者です。先日以下の例文を問い合わせさせていただきました。 答えとして$abc[0] に $def を代入して、$abc[1] に $abcという配列([0] に $def の内容がある)が代入されると教えていただき、実際確認しました。二次元配列入れ子のようになるのは解ったのですが、 どのような場合に使うのでしょうか? ホームページなどの画面に表示するのに使ったりするのでしょうか? それともデータベースからデータを抽出して一時的に、何らかのかたちで格納 したりする場合によく使われるのでしょうか? この例文だけどこかにあったので、実際どのように使うのかイメージできません。 すみません。教えてください。 <?php $def = 'test'; $abc = array(); $abc[] = $def; $abc[] = $abc; print '<pre>'; print_r($abc); print '</pre>';

    • ベストアンサー
    • PHP
  • 変数の定義について

    perl中級者です。 とあるPGMの修正を頼まれて行っていたのですが、 変数の定義において print "$ABC{$DEF}\n" という記述がありました。 $ABC$DEF や $ABC[$DEF]、 $ABC${DEF} という記述は使用しますが、 $ABC{$DEF} のような記述ってあるのでしょうか? 前後の処理は関係無しにこのような表現があるのかどうかを教えてください。 また、その場合print等で表現すると、 どのような表示になるのでしょうか? perl:Ver4 開発環境:HP-UX 以上、よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • apple scriptファイル名の一部のみ変更

    apple scriptにおいて、ファイル名変更の自動化を試みています。 ファイル名にabcという文字が含まれる場合、それらをdefに 変更する、というようなことがしたいのですが、 (001abc.txt -> 001def.txt 003abc0.txt -> 003def0.txt) apple scriptにおいて set oldName to name of aObj --- newNameを指定 set name of aObj to newName の上記でoldNameからnewNameをどう得たらよろしいでしょうか?

    • ベストアンサー
    • Mac
  • SQL 文字列操作

    SQL(Oracle)のSELECT文で、以下の様なCOL1列において、 COL1 ---------- abc_def g_hi_jk 最初の_以降を削除して、 COL1 ---------- abc g の様に表示させるにはどうすればよいのでしょうか。 「abc_def」→「abc」 は、無理矢理(?)これでできたのですが… select replace('abc_def',substr('abc_def',instr('abc_def','_'))) from dual;

  • Perlで別ファイルから文字列の抽出

    当方、サーバ管理でインフラ系の経験しかなく、今回はperlでスクリプトの作成に挑戦しておりますがなかなか理解できていません。お知恵をお貸しください。 やりたいこと: ある入力を受けたら、別ファイルに照会して特定列の文字列を抽出する。以下に例を示します。 入力が gad の場合(小文字です)、file1を参照する。例では一行目にGAD****があるのでこれに該当することとする。最終的にoffice が出力されるようにしたい。 file1の内容: GAD93911 <test1> office HOA14845 <test2> desk ABC52311 <test3> chair KFI33823 <test4> home よろしくお願いいたします。

    • ベストアンサー
    • Perl