No.3ベストアンサー
- 回答日時:
そういう仕様でしょう。
Perlの数値定数の場合は 0x 先行で 16進、 0 先行で 8進を意味します。
だから、chmod(0750,$file); は chmod(488,$file); と等価です。
一方、数値が必要なところに文字列があると自動的に数値に変換されますが、その時は 0x や 0 先行で 16進や 8進という規則がありません。
つまり、chmod('0750',$file); は chmod('750',$file); と等価でさらに chmod(750,$file); と等価です。 chmod(0750,$file); とは違うのです。
'0750' または '750' という文字列から 488 という数値を得るには、 oct('750') または oct('0750') が使えます。
参考URL:http://perldoc.jp/docs/perl/5.8.4/perlfunc.pod
No.2
- 回答日時:
chmod の第1引数は数値 (整数) を要求していて, 「文字列を数値に変換する」ときには必ず 10進数と解釈するから.
実は perldoc を読めばこの辺は全部書いてある.
No.1
- 回答日時:
Perlは少しかじった程度なので勘違いならすみません。
$per = "0750";
でダブルクオートで代入しているため$perに10進数で750という値が入っているのではないでしょうか?
750(10進数)=1356(8進数)で下3桁の356が設定されているのが原因かもしれません。
print $per
で$perの中身を確認してみて下さい。
0750をそのまま代入したいのであればシングルクオートで囲ってみてはどうでしょうか?
$per = '0750';
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux 実行の仕方及び実行結果が分かりません。 2 2022/11/17 19:31
- Perl Windows10においての『Perl』のプログラムについて 1 2022/05/09 16:04
- UNIX・Linux Linuxの実行結果を修正したいです。 6 2022/11/22 12:57
- Perl perlをバージョンアップしたら、今まで正常に動いていたプログラムが、エラーになってしまった 3 2022/10/05 15:44
- UNIX・Linux ファイル・フォルダーの削除方法 2 2022/05/19 14:04
- その他(ソフトウェア) Emacsメニューの日本語化について 1 2023/06/16 15:52
- Perl perlでリテラル値はメモリにどのように格納されているか? 1 2023/01/15 20:45
- UNIX・Linux redmineにメールを飛ばす方法 1 2022/09/13 22:02
- Mac OS PATHを使ってcdなどで簡単に移動できるようになりたい 3 2023/05/13 14:22
- Perl perlで2次元配列をサブルーチンに値渡しで渡す 5 2022/12/17 18:49
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイルの作成場所の分別
-
perlのソケットがうまく作動し...
-
fgets で値が取得できない
-
Firefox で file:// で始まる U...
-
Perlでのパーミッション変更の仕方
-
ファイル全てを .xlsm に変更し...
-
C言語でのファイルのデータ更...
-
改行コードが勝手に
-
ReadLineでの読み出し行を指定する
-
C言語で特定の行を抽出する方法...
-
Windowsで複数のファイルを同じ...
-
Perlの変数に文字数制限(容量...
-
文字コードの変換(Shift-JISか...
-
VBAでCSVファイルを途中行まで...
-
close()で例外が投げられる理由
-
ファイル名を複数個配列で確保...
-
Perlでファイル出力時にデッド...
-
readdir におけるフルパスでの...
-
Perl エラーログを指定の場所...
-
エクセルVBAでCSVファイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
window.open でのファイル指定方法
-
csvファイルの横方向への改行に...
-
fgets で値が取得できない
-
MATLABのm-fileについて
-
JSP URLに表示される拡張子 .jsp
-
drtファイルはどうしたら開...
-
PerlでのUseless use...
-
python renameについて
-
巨大なテキストの最終行を取得...
-
ファイル全てを .xlsm に変更し...
-
Firefox で file:// で始まる U...
-
VBAコードを張り付け後のエクセ...
-
perl ファイルが開かない
-
ファイルの存在の有無を確かめ...
-
AutoNts
-
VBA テキストファイルを読み取...
-
fopen64について
-
行を指定して削除する方法PERL
-
文字列をカウントする方法
-
read() on unopened filehandle...
おすすめ情報