• ベストアンサー

3桁コードの先頭文字を取り出す

お世話になります。 Perlは最近はじめました。ご教授宜しくお願いします。 さて、コード番号が101、102・・・201、202・・・801、802の様にあってリクエストフォームから送信されてきます。これを一旦変数に代入した後、102だったら、先頭の1を、801だったら先頭の8を取り出して、ifで分岐させたいのですが、ExcelなんかでのLeft関数の様に、左から○文字を取り出す・・・という処理はPerlではどうすればよいのでしょうか?

  • Perl
  • 回答数2
  • ありがとう数3

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

  • ベストアンサー
  • mi-si
  • ベストアンサー率35% (200/567)
回答No.1

substr関数を使います $left = substr($code,0,1); //頭(offset0)から1文字

参考URL:
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/pe_k05.htm
souta_n
質問者

お礼

ありがとうございます。 参考URLは今後もいろいろ参考になりそうです。

その他の回答 (1)

  • leaz024
  • ベストアンサー率75% (398/526)
回答No.2

Perlで文字列の一部を抜き出す時には substr 関数を使用します。 例えば、   $var = substr($str, $pos, $len); とすると、$str の $pos 番目(先頭は0番目)から、$len バイト分を $var に代入します。 ※$str は変更されません。 # 少し前にこんな質問もありましたね。 質問:LEFT関数のようなもの(7桁の数字から左の3桁の数字を抜き出す) http://oshiete1.goo.ne.jp/kotaeru.php3?q=762425

souta_n
質問者

お礼

ありがとうございます。 やっぱり同じような質問を上げてる人もいたようですね。 探しきれませんでした。

関連するQ&A

  • 文字の抜き出し

    変数に代入されている文字の語尾4文字や先頭10文字などといった具合に指定し文字を抜き出す事は出来ますでしょうか?Excelでのleft関数やright関数などのようなものがあるのではと思ったのですが、検索で見つけられませんでした。 その方法やアドバイスなど書き込みをいただければと思います。 よろしくお願いします。

    • 締切済み
    • PHP
  • 文字コードについて

    こんばんわ。ASPでフォームの送信を作成しようと思い いろいろサンプル(VBScript)を見ているのですが、chr(13)という 文字コードの関数?が出てきたのですが、()内の 13と言う数字は何にあたるものなのでしょうか? どなたかご教示願えませんでしょうか?よろしくお願い致します。

  • ■ 文字コードの出力について ■

    符号付char型の変数「moji」に文字を代入し、その文字コードの上位4ビットと下位4ビットをそれぞれAND演算でビットを抽出し、算術右4シフトと算術左4シフトで処理して元の上位4ビットと下位4ビットを入れ替えて文字コードを出力するC言語プログラムです。 例えば、「A」の文字コード「41」を「14」で出力します。 問題は「N」です。 「N」の文字コードは「4E」です。これを「E4」に変えて出力したいのですが、「ffffffe4」となってしまいます。 解決策は、符号無しchar型の変数にすることが分かりました。 なぜ、符号無しchar型の変数にしないと正常に表示できないのでしょうか? コンパイラは「Borland C++ Compiler 5.5」です。 お答えできる方、よろしくお願いいたします。

  • コードが送信されません…

    至急! Twitterヘルプセンターにリクエストを申請する為にフォームに電話番号を入力しコード送信ボタンを押したら、問題が発生しました。もう一度お試しくださいとなってしまいます。+81でちゃんと入力しています。 どうすれば良いでしょうか?このような画面になります。

  • コードを簡素化したいです

    こんにちは。お世話になります。 元々、$modeは、time()から取得したもので、「1090693556」のように、数字データです。 ですが、後処理によって、一部の$modeに別の変数を代入して、下記のような処理をさせました。 if(($mode == "jun_0001") || ($mode == "jun_0002") || ($mode == "jun_0003") || ($mode == "jun_0004")){ echo "...........\n"; } それで、現在はjun_0001~jun_004の4つですが、もっと数が増えると辛いので、preg_matchでも使った、シンプルコードには出来ないでしょうか? 教えて下さい。

    • ベストアンサー
    • PHP
  • CGIの文字コードについて

    CGIを下記URLのサイトから落として、メールフォームを設置しました。 http://www.synck.com/contents/download/cgi-perl/mailform_jcode.html 「メールフォームCGI UTF-8対応版」というメールフォームです。 mailformというフォルダの中に send.cgi(プログラム本体) check.cgi(設置確認プログラム) count.dat(通し番号を記録するファイル) があり、send.cgiはメールアドレス等を書き換える程度の編集をしております。 フォームには必須項目を設け、何も入力せずに送信ボタンを押すと、「●●が入力されていません」というようなダイアログが表示されます。ですが、必須項目を入力して送信ボタンを押すと500エラーがでます。 「●●が入力されていません」という表示がなされるということは、cgiの設置自体はとりあえずできていると考えてよろしいですよね? 文字コードが問題だと思い、検索かけてみたもののよく理解できず、色々な文字コードで保存しては、実際にアップしたメールフォームを使って試していたら、一度だけ、設定したメールアドレスにきちんとメールが届きました。しかし、自動で送信される送信内容を確認するメールの方が文字化けしてしまいました。 逆に、自動で送信される送信内容の確認メールは届かないが、文字化けしたメールが設置したアドレスに来たこともありました。 設置者へのメールを送信者への内容確認メールが文字化けせずにきちんと送れたことはありません!! 長くなりましたが、どの文字コードで読み込み、そしてどの文字コードで保存したら良いか分かりません。 cgiの編集はTerapad、サーバはさくらインターネットのライトです。 サーバへのアップは直接さくらインターネットにログインして行っております。 ※CGI初心者です。初めて設置する完全素人です。 よろしくお願いします!!

    • 締切済み
    • CGI
  • 複数の演算子を選択する場合の処理

    複数の演算子を選択するプログラムがあり、選択する演算子によって計算方法を変えたいのですが、このときに今やっている方法はifの条件分岐にて処理を行っておりますが、演算子は変数に代入できないのでしょうか? 例えばべき乗を選択した場合は 変数= ^ また、これと同じく代入演算子の場合も 変数= ^= という方法があれば教えていただきたいです。 よろしくお願いいたします。

  • VBAで文字コードを取り出したい

    セルに取り込んだ文字列にスペースが含まれ、VBAの" "で読まれません。関数で=CODE(B1)により取り込むと文字コード160です。 VBAで文字コード160で識別したいのですが、chr()などを試してエラーになります。 セル内の文字からmidで取り出したスペース(コード160)を、コード番号で識別してifを使って排除したいのですが、素人ですので、マクロがうまく作れません。 混乱していますが、よろしくお願いします。

  • Perlコードを、自動的にPHPコードに変換してくれるプログラム!

    Perlコードを、自動的にPHPコードに変換してくれる、そんな「ドラえもん」のようなプログラムがありましたら教えて下さい! もちろん、変換後のコードが完全なPHPコードでなくても、大体、関数とか、変数、その他の定型ルーチンの違いを置き換えてくれる程度のもので結構です。 その他、何か、そういったPerlからPHPへの乗り換え支援ツール見たいなものがあったら教えて下さい。

    • 締切済み
    • PHP
  • 文字コードの統一方法

    フォームから表示されている文字コードとは違う文字コードで送信されてもEUC-JPに統一できるようにしたいのです。 現在は以下のようにしています。 $str = mb_convert_encoding($str, "euc-jp" ,"auto"); しかし、これだとまだまだ変換しきれない文字コードが多く困っています。どの文字コードでも統一できる方法があればお願いします。 もし、無いようでしたら上の方法で統一できない文字コードで送信された場合はエラー処理をしたいので、送信データの文字コードを調べる方法をご教授ください。

    • ベストアンサー
    • PHP

専門家に質問してみよう