• 締切済み

format について

formatで出力した先で一行ずつ改行が入るのですが、入らない方法って ありますか? format TEST = @<<<<<<<<<<<<<<<<<<@<<<<<<<<<<<<<<<<< $name,$login . ------------↓出力時 太郎   0123 次郎   0303 三郎   1111

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

みんなの回答

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.3

すみません。回答を書くのを忘れていました。 環境についてはわたしと同じですね。 #1でわたしが貼り付けているスクリプトを質問者さんの 環境で実行するとどうなりますか? それと#1の補足にあるスクリプトですが、どのようなエディタを 使って作られました? 改行の設定がどうなっているのかがわかれば それもお願いします。 あ、そうだもう一つ。 実行しているのは、コマンドプロンプト(cmd.exe)上でですか? それとも何か別の環境でしょうか?

stockjp
質問者

補足

すみません。おさわがせしました。 format TABLE = ●←ここ改行してました。 @<<<<<<<<<<<<<<<<<<<<<<<<<@<<<<<<<<<<<<<<@<<<<<<<<<<<<<< $test1,$test2,$test3

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

再現しません。 1□ 1■ 1○ 2□ 2■ 2○ 3□ 3■ 3○ 4□ 4■ 4○ スクリプトを実行している環境などの情報をお願いします。

stockjp
質問者

補足

環境としては WindowsXP SP2 ActivePerl v5.8.8 です。

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

$nameと$loginの内容はどこからどう来たのかがわかりませんけど、 $loginの尻尾とかに改行コードがくっついてませんか? #!/usr/bin/perl # -*- coding: utf8 -* use strict; use warnings; my $name; my $login; format STDOUT = @<<<<<<<<<<<<<<<<<<@<<<<<<<<<<<<<<<<< $name,$login . while (my $entry = <DATA>) { chomp $entry; ($name, $login) = split q{,}, $entry; write; } __END__ 太郎,1234 次郎,2345 三郎,3456 C:\work>perl mogera.pl 太郎 1234 次郎 2345 三郎 3456

stockjp
質問者

補足

やっぱり改行するんですがどうでしょうか? ------------------------------------------- for ($i = 1; $i <= 4; $i++) { $test1 ="$i"."□"; $test2 ="$i"."■"; $test3 ="$i"."○"; $~ = TABLE ; write; } format TABLE = @<<<<<<<<<<<<<<<<<<<<<<<<<@<<<<<<<<<<<<<<@<<<<<<<<<<<<<< $test1,$test2,$test3 .

関連するQ&A

  • 申込日から起算して1ヶ月経過しているデータのみ表示

    はじめまして。現在仕事でデータベースアプリを開発しているのですが、表題の件でちょっと頓いてしまっているので、皆様のお知恵を借りたく投稿させていただきます。 開発環境は下記で行っております。 ================================================================ OS:WindowsXP Professional SP3 アプリケーション:Access ADP(Access2007 + SQLServer2008 Express) SQLServer Management Studioを使用 ================================================================ あるサービスへの申込者一覧をビューにて作成したいと思っているのですが、例を挙げると下記のようなデータ ---------元データのテーブル------------- 申込日 氏名 2010/12/01 テスト太郎 2010/12/02 テスト三郎 2010/12/05 テスト次郎 2010/12/31 テスト三郎 2011/01/04 テスト次郎 2011/01/05 テスト次郎 2011/01/10 テスト太郎 2011/02/01 テスト太郎 2011/02/11 テスト太郎 2011/03/02 テスト太郎 -------------------------------------- をビューを用いて同じ人がビューに出力されている申し込みから起算して1ヶ月の期間内にまた申し込まれたレコードは表示しないようにしたいのです。再現したいのは下記の通りです。 ---------出力結果(ビュー)-------------- 申込日 氏名 2010/12/01 テスト太郎 2010/12/02 テスト三郎 2010/12/05 テスト次郎 2011/01/05 テスト次郎 2011/01/10 テスト太郎 2011/02/11 テスト太郎 ------------------------------------- ~~~~~~~~~~~元データをもとに解説~~~~~~~~~~~~~ 2010/12/01 テスト太郎 2010/12/02 テスト三郎 2010/12/05 テスト次郎 はお三方とも最初の申し込みなのでそのままビューに出力 2010/12/31 テスト三郎 2011/01/04 テスト次郎 はビューに出力されるレコードのデータの日付からそれぞれ1ヶ月経過していないので、 ビューには出さない 2011/01/05 テスト次郎 はビューに出力される 2010/12/05 テスト次郎 の日付 2010/12/05 より起算して1ヶ月以上経過しているのでビューに出力 2011/01/10 テスト太郎 はビューに出力される 2010/12/01 テスト太郎 の日付 2010/12/01 より起算して1ヶ月以上経過しているのでビューに出力・・・(1) 2011/02/01 テスト太郎 はビューに出力される(1)の 2011/01/10 テスト太郎 の日付 2011/01/10 より起算して1ヶ月経過していないのでビューに出力しない 2011/02/11 テスト太郎 はビューに出力される(1)の 2011/01/10 テスト太郎 の日付 2011/01/10 より起算して1ヶ月以上経過しているのでビューに出力・・・(2) 2011/03/02 テスト太郎 はビューに出力される(2)の 2011/02/11 テスト太郎 の日付 2011/02/11 より起算して1ヶ月経過していないのでビューに出力しない ---------元データのテーブル------------- (※ビューに出力は○、出力しないはX、番号は上記解説に対応) 申込日 氏名 2010/12/01 テスト太郎 ○ 2010/12/02 テスト三郎 ○ 2010/12/05 テスト次郎 ○ 2010/12/31 テスト三郎 X 2011/01/04 テスト次郎 X 2011/01/05 テスト次郎 ○ 2011/01/10 テスト太郎 ○・・・(1) 2011/02/01 テスト太郎 X 2011/02/11 テスト太郎 ○・・・(2) 2011/03/02 テスト太郎 X -------------------------------------- ※元データは申込受付テーブルなので、リアルタイムにお客様が申し込みされた日付でレコードは増えていきます ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ どのようなSQLにすればよろしいでしょうか...

  • Excelセルで縮小表示

    例えばセルに以下を入力しますと 山田太郎(改行) 山田次郎(改行) 山田三郎 縮小表示だと 山田太郎山田次郎山田三郎 になります。 折り返して全体表示だと 山田太郎 山田次郎 となり、山田三郎隠れて見えないのです。これを全体的に縮小表示はできませんか。お願いします。

  • 次の条件を満たすSQL文をご教示下さい。

    テーブル名: list no | first_name | last_name | comment ----+------------+-----------+--------- 1 | 太郎 | 山田 | ほげ 2 | 次郎 | 田中 | ふが 3 | 花子 | 山田 | ぴよ 4 | 三郎 | 佐藤 | ぴよ 5 | 太郎 | 山田 | ぴよ 6 | 次郎 | 田中 | ふー 7 | 三郎 | 佐藤 | ふー 8 | 花子 | 山田 | ふー 上記の表から同じ”last_name”を持つ人の”first_name”と”last_name”を重複無しで抽出する(下記のような結果)SQL文は作成可能でしょうか。 結果 first_name | last_name ------------+----------- 太郎 | 山田 花子 | 山田 宜しくお願いします。

  • 岡崎次郎三郎や茶屋四郎次郎

    岡崎次郎三郎信康や茶屋四郎次郎の「次郎三郎」とか「四郎次郎」ってどういう意味ですか? ほかに有名な、例えば「太郎次郎」とか「三郎次郎」って名前が付く歴史人物はいますか? 教えて下さい。 お願いします。

  • エクセルで文字列を数えて一覧表にしたいのですが

    たとえばですが、2人一組で配達に行きます。 メンバーは、太郎、次郎、三郎、四郎、五郎・・・と多人数です。 A1に太郎、B1に三郎 A2に次郎、B2に五郎 A3に太郎、B3に次郎 ・ ・ ・ と、いうような表ができます。 このとき、*郎は何回配達にいったのかをカウントしたいのです。 *郎は、A、Bのどちらに登場するかわかりませんし、 何回も登場しますし、組み合わせもばらばらです。 最終的に、太郎 15回、次郎 8回、三郎 21回・・・というように分かるようにしたいので、 仮にD1に太郎、E1に次郎、F1に三郎・・・の名前 (ダブって登場する名前を一つにまとめて、登場する全ての名前を残したい)、 D2に太郎、E2次郎、F2に三郎の回数(登場した名前の回数を数字で求めたい) というようにしたいのです。 エクセルの詳しい方、よろしくお願いします。

  • 次のデータ抽出を(高速に)行うSQLを教えてくださ

    自分がフォローしている人のつぶやきと、じぶんの呟きを含めて、日付順で表示するSQLを検討しています。 MYSQLの構文がかなり複雑になってしまったために、 もっと簡単に高速にSQLで記述する方法がありましたら教えて頂けませんでしょうか。 長文になり申し訳ございませんが、アドバイスいただけると幸いです。 テーブルは以下の3種類です。 ●cutomer:登録者名を記録 <構造> id(auto increment,key),name(名前) <サンプルデータ> 0,"太郎" 1,"次郎" 2,"三郎" 3,"四郎" ●follow:誰が(my_user_id)、誰をフォローしているか(target_user_id)を記録 <構造> id(auto increment,key),my_user_id,target_user_id <サンプルデータ> 0,1,0 0,1,2 ●tweet:つぶやきを記録 <構造> id(auto increment,key),user_id,tweet_comment(つぶやき),date(つぶやき日時) <サンプルデータ> 0,1,"次郎のつぶやきです","2011-01-01 00:00:00" 1,2,"三郎のつぶやきです","2011-02-01 00:00:00" 2,0,"太郎のつぶやきです","2011-03-01 00:00:00" 3,1,"次郎のつぶやきです","2011-04-01 00:00:00" 4,3,"四郎のつぶやきです","2011-05-01 00:00:00" 上記のサンプルデータを用いて、期待する出力結果をご説明します。 例として、入力値を「次郎」とすると、 「次郎」のつぶやきと、次郎がフォローしている太郎と三郎の呟きを表示したいです。 "次郎","次郎のつぶやきです","2011-01-01 00:00:00" "三郎","三郎のつぶやきです","2011-02-01 00:00:00" "太郎","太郎のつぶやきです","2011-03-01 00:00:00" "次郎","次郎のつぶやきです","2011-04-01 00:00:00" 現状は、次郎とつぶやきselectと、次郎がフォローする太郎と三郎のつぶやきselectを unionで結合する形式なっており、もうちょっと賢くできないものかと悩んでいます。 なお、対象の次郎のuser_id(サンプルでは"1")は予めわかっているものとします。 ( select customer.name,tweet.tweet_comment,tweet.date from customer,tweet where customer.id = 1 and customer.id = tweet.user_id ) union ( select customer.name,tweet.tweet_comment,tweet.date from customer,tweet,follow where follow.my_user_id = 1 and follow.target_user_id = tweet.user_id and tweet.user_id = customer.id ) order by table_tweet.date asc

    • ベストアンサー
    • MySQL
  • 中学受験算数の問題(仕事算)教えてください

    中学受験の算数の問題です。答えは分かっているのですが、考え方がわかりません。 どうか教えてください、よろしくお願いいたします。 {問題} 1時間当たりの仕事量が違う太郎君、次郎君、三郎君の3人が、一日6時間ずつ5日間働いて 完成する仕事があります。初日は三郎君が休んだので、太郎君、次郎君の2人で6時間ずつ働き、 2日目から4日目は3人で6時間ずつ働きました。最終日は3人で7時間ずつ働くと完成する予定 でしたが、最終日に次郎君が休んだため、太郎君と三郎君が2人で10時間30分ずつ働いて 完成することができました。次の問いに答えなさい。 (1)三郎君が一人でこの仕事を終わらせるには何時間かかりますか? (2)一時間当たりの、次郎君と三郎君の仕事量の比を求めなさい。 (3)仕事量に比例して賃金が支払われ、次郎君は48000円もらいました。   太郎君と三郎君はそれぞれいくらもらいましたか? 2013年立教新座中学の入試で出された問題だそうです。 ちなみに答えは、(1)180時間  (2)2:1  (3)太郎103,500円 三郎28,500円 (1)、(2)だけでもいいです。 小学生にも分かるように解説して頂けたらありがたいです。 どうかよろしくお願いいたします。

  • 【Excel VBA】コピー&ペーストの自動化

    以下のエクセル表があり、同じ日付ごとのデータを自動的に別のシートに移したいです。 例えば、別のシートに、2004/1/1に書かれているデータのみを移す。(シート2参照) それをVBAで書くにはどうすればいいでしょうか。 マクロの記録をするのではなく、この表の日付を増やしたり変えたりしても機能するようにコードを書きたいと思っております。 For LoopとIf thenを使い、A1セルがそれより下のセルの値と異なるまでコピーし続ける、、といった作業をすればよいのでしょうか。 全くの初心者で勉強中です。よろしくお願いいたします。 列行 A B 1 2004/1/1 太郎 2 2004/1/1 次郎 3 2004/1/1 三郎 4 2004/1/1 一郎 5 2004/1/1 五郎 6 2005/3/3 三郎 7 2005/3/3 次郎 8 2005/3/3 太郎 9 2005/3/3 四朗 10 2006/2/2 次郎 11 2006/2/2 一郎 12 2006/2/2 太郎 シート2 2004/1/1 太郎 次郎 三郎 一郎 五郎 シート3 2005/3/3 三郎 次郎 太郎 四朗 シート4 2006/2/2 次郎 一郎 太郎

  • エクセルでの顧客数のカウント

    エクセルで下記のような表を作っています。 A   B       C 日付 顧客名   売上 10/1 山田太郎  1000 10/5 中村次郎  2000 10/10 鈴木三郎  1000 10/22 中村次郎  2000 10/31 山田太郎  1000 この時に、10月1か月の顧客数をカウントしたいのです。 上記であれば、山田太郎、中村次郎、鈴木三郎の3人ということになるはずです。 どのようにすればできますでしょうか。

  • エクセルの同じ名前をカウントする方法

    エクセルの同じ名前をカウントする方法 初歩的な質問ですみません。 山田太郎 田中一郎 鈴木三郎 高橋次郎 鈴木三郎 高橋次郎 鈴木三郎 A1のセルにこういった状態で名前が入力されていた場合に 山田太郎 1 田中一郎 1 鈴木三郎 3 高橋次郎 2 となるように同じ名前がいくつあるかをカウントさせ上記のように表示させたいのですが、 どうしたらいいのでしょうか? (同じシートでも、別のシートでもどちらでも構いません) 至急お答えいただけるとありがたいです。 よろしくお願いします。 

専門家に質問してみよう