perlにおけるCurrent Directoryの移動方法とは?

このQ&Aのポイント
  • perlを使ってWindows上でCurrent Directoryの移動方法について調べています。具体的なコードを使用して説明し、プリント結果も示しています。しかし、一部のコードがうまく動作していません。どのように修正すれば良いのでしょうか?
  • Windows上でperlを使用してCurrent Directoryを移動する方法について調べています。コードの例を示し、実際のプリント結果も表示しています。しかし、一部のコードがうまく動作していません。修正方法を教えてください。
  • perlを使ってWindows上でCurrent Directoryの移動方法を学んでいます。具体的なコードとプリント結果を示していますが、一部のコードが正しく動作していません。修正手順を教えてください。
回答を見る
  • ベストアンサー

perlにおけるCurrent Directoryの移動

Windows上のperlを仕事に使っています。 Current Directoryの移動について、色々調べているのですが よく分かりません。教えてください。 最初にいるところを C:\test\とします。 ----------------------- $myCurrentDir1=`cd`; chdir("./temp/"); $myCurrentDir2=`cd`; chdir(".."); $myCurrentDir3=`cd`; chdir($myCurrentDir2); $myCurrentDir4=`cd`; print "$myCurrentDir1\n"; print "$myCurrentDir2\n"; print "$myCurrentDir3\n"; print "$myCurrentDir4\n"; --------------------------------- プリント結果は、 C:\test C:\test\temp C:\test C:\test となって、最後のchdir($myCurrentDir2); がうまく行っていません。 どのようにすればうまく行くのでしょうか? よろしくお願いいたします。

noname#95859
noname#95859
  • Perl
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • venzou
  • ベストアンサー率71% (311/435)
回答No.1

改行コードが入っているためだと思います。 chomp($myCurrentDir2); chdir($myCurrentDir2);

noname#95859
質問者

お礼

chompを使って改行コードを取ることでうまく行きました。 ありがとうございました。

関連するQ&A

  • perlの書き方

    現在、windowsでwebサーバ構築しています。iisを使用しています。 その中で、perlを使用して、送信ボタンを押すとメールを配信するものを作成しています。 $to='******@******.co.jp'; if(open(ML,"○○○○○○")){ print ML "From: $email \n"; print ML "To: $to \n"; print ML "Bcc: $bcc \n"; print ML "Content-type: text/plain;\n"; この○○には、何といれたらいいのでしょうか? また単純な質問で申しないのですが、先頭部分は、 #!C:\Perl\bin\perl.exe でいいのでしょうか?

    • ベストアンサー
    • Perl
  • Win98+PWS4.0でPERLが動作しません

    Win98+PWS4.0でPERLを動作させたいのですがうまくいきません。 ディレクトリ「Inetpub」-「scripts」へTEST.PLという名で 下記のプログラムを入れて実施すると、 --------------- #!/user/local/bin/perl print "Content-type: text/html\n\n"; print "<html>\n"; print "<body>\n"; print "<p>\n"; print "Hello\n"; print "</p>\n"; print "</body>\n"; print "</html>\n"; --------------- HTTP エラー 403 403.1 許可されていません: 実行アクセスは許可されていません --------------- と出ます。 レジストリの設定は ".pl",".cgi”とも「C:\Perl\Bin\Perl.exe %s %s 」として、 PWSの設定で「scripts」は”実行””スクリプト”とも チェエク入をれています。 「wwwroot」のルートへ置いても同様のエラーが発生します。 DOS窓から「Inetpub」-「scripts」内でTEST.PLとすると 正常に表示はされます。 PerlへのパスもC:¥から実行確認済みです。 何が原因と考えられるでしょうか。 宜しくご教示お願いします。

  • Perl CGI -入力フォーム-

    Perlを始めたばかりの初心者です。 Perlの中にフォームを入れたいのですが、エラーが出てしまいます。 現在は、ローカルで作動させています。 #! c:/perl/bin/perl print "Content-type: text/html\n\n"; print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">\n"; print "<head><title>TEST</title></head>\n"; print "<body>\n"; print "<p><input type="text" name="name"></p>\n"; print "</body>\n"; print "</html>"; 【print "<p><input type="text" name="name"></p>\n";】この記述がエラーの対象行となっています。 inputを使用する場合は他にも記述が必要なのでしょうか? 宜しくお願いします。

  • perlでサブルーチンへの複数の配列渡し

    perlでサブルーチンに配列を渡しているのですが、 引数としている配列が1個の場合は問題ないのですが、 複数渡すと、第2引数以降が渡りません。 どの様にすれば上手くできますか。 例1 #!/usr/bin/perl @x1 = (14, 11, 5, 12, 8, 15); @x2 = (12, 10, 8, 9); print "main : @x1 \n"; &test(@x1); sub test { my (@arg1) = @_; print "sub : @arg1 \n"; } 結果 main : 14 11 5 12 8 15 sub : 14 11 5 12 8 15 例2 #!/usr/bin/perl @x1 = (14, 11, 5, 12, 8, 15); @x2 = (12, 10, 8, 9); print "main : @x1 \n"; print "main : @x2 \n"; &test(@x1, @x2); sub test { my (@arg1, @arg2) = @_; print "sub : @arg1 \n"; print "sub : @arg2 \n"; } 結果 main : 14 11 5 12 8 15 main : 12 10 8 9 sub : 14 11 5 12 8 15 12 10 8 9 sub : 引数1に全てが設定されて、引数2に設定されていない。

    • ベストアンサー
    • Perl
  • フォルダの移動をおこないたいのですが・・・

    よろしくお願いします。 CGIの中間プログラムとして、 「カレントフォルダを移動して特定のフォルダを削除する」 というようなPGMを作っているのですが、フォルダ移動の処理がうまくいきません。 ----------------------------- use Cwd; $tmpdir="tmp"; if(-d $tmpdir)){  if(chdir("$tmpdir"){   print"成功\n";  }  else{   print"失敗\n";  } } ----------------------------- 上記記述の結果は失敗となります(実際のPGMより簡略化しております)。 「tmp」フォルダは存在するが 移動に失敗しているということです。 私の記述方法が間違っているのでしょうか? サーバー・・・HP-UX 開発言語・・・Perl5 開発端末・・・windows2000(Tera Term 使用) 以上、よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • Perl+DBI+Apacheの動作

    #!C:\\Perl\\bin\\MSWin32-x86-object\\jperl use DBI; print \"Content-type:text/html\\n\\n\"; print \"<html><body>test script</body></html>\\n\"; という内容のスクリプトを指定したフォルダの中に入れても、「test script]とブラウザ上に表示されません。そのまま「#!C:\\Perl\\bin\\MSWin32-x86-object\\jperl use DBI; print \"Content-type:text/html\\n\\n\"; print \"test script\\n\";」と 表示されます。 Apache、ActivePerl、Mysql、DBI、DBDはインストールし、Apacheも動作しているのは確認できます。 どうしてなのでしょうか。解決方法を教えていただけると助かります。どうぞよろしくお願いします。

    • ベストアンサー
    • Perl
  • Perlで1~10まで全部足す。簡単に書くには?

    題名のとおりなんですが。 Perlで1~10まで全部足すのに、 1番簡単に書いたらどんな感じなるでしょうか? (一回足すごとに結果は表示) 私は全然浮かばず、 $a = 1 print "$a\n" $b = $a + 1 print "$b\n" $c = $b +2 " …続く こんな感じのお粗末なものを書きました。 whileやforを使えばもっと簡単に書けると思いますが、 どなたかご存知でしたら教えてください。

    • ベストアンサー
    • Perl
  • perl 初心者です。 わかりやすくお願いします。

    Perlを始めたのですが、本や色いろんなサイトを見てもよく分かりません。 Aと言うデータを読み込んで最大最小・平均・標準偏差を求めたいです。 (1)どこが間違っているのか1部づつでもいいので詳しく教えてください。 (2)一つ一つの意味がちゃんとはつかめていないと感じるので流れを教えてください。 #!/usr/bin/perl # 12345 STDIN use strict; use warnings; open ( FILEHANDLE , " < A " ) ; my @Str=<STDIN>; foreach my $Row (@Str ){ print $Row; } my $Minimum=$ARGV[0]; my $Maximum=$Minimum; my $Sum=$Minimum; my $temp=0; my $i=1; while ( $i < $Num_arg){ $temp=$ARGV[$i]; if ( $Minimum > $temp ) { $Minimum = $temp; }elsif ( $Maximum < $temp ){ $Maximum = $temp; } $Sum = $Sum + $temp; $i++; } my $Average = $Sum / $Num_arg; my $w = foreach my $w(0..$#Numbers){ ($Num_arg - $Average) ** / Num_arg; } my $Standarddivitation = sqrt ($w); print "Average value = $Average \n"; print "Maximum Value = $Maximum \n"; print "Minimum Value = $Minimum \n"; print "Standard devitation = $Standarddevitation;

  • Perlの超初心者です。

    Perlの超初心者です。 mac osXを使っています。テキストエディットで、#! /usr/bin/perl print "hello world!\n";と書いてperl-test.plと保存しました。そしてターミナルを起動してperl-test.plとタイプしたのですが、-bash: perl-test.pl: No such file or directoryとなってしまいます。 試しにターミナルでperl -le "print 'hello world';"とタイプするとhello worldとかえってきました。 perl-test.plはfinderのデスクトップに保存してあります。いったいどうすればperl-test.plのファイルを実行できるのですか? 教えて下さい。よろしくお願いします。

  • PerlをWinで使いたい。

    当方のパソコンのOSはWin XP SP2 です。 Perlの勉強を始めようと思いまして、 PerlがWinで使えるということなので、 Perl for Win32 Base Build 316 の日本語対応版をダウンロードしました。 C:\Perl\bin\フォルダの中のファイルは以下の通りです。 Jperl.exe Perl300.dll PerlGlob.exe XPerl.exe XPerlGlob.exe 別に中身が以下のようなtest.txtファイルを作りました。 $name = "KENT"; print "my name is $name", "\n"; print 'my name is $name', "\n"; それで、test.txtをJperlのアイコンにドラッグしました。 ms-dosの画面は出るのですが、何も表示されません。 お助け下さい。・・・m(_ _)m

専門家に質問してみよう