de-vraag
  • 質問
  • タグ
  • ユーザー
通知:
報酬:
登録
登録すると、質問に対する返答やコメントが通知されます。
ログイン
すでにアカウントをお持ちの方は、ログインして新しい通知を確認してください。
追加された質問、回答、コメントには報酬があります。
さらに
ソース
編集
Joel Berger
Joel Berger
質問

Tie :: Fileを__DATA__に使用すると予期しない動作が発生する

古い質問に巧みなやり方で答えようとすると、成功するかどうかを知らずに、これを試みようとしていました。

#!/usr/bin/env perl

use strict;
use warnings;

use Tie::File;
tie( my @data, 'Tie::File', \*DATA ) or die "Cannot tie DATA";

foreach ( @data ) {
    print;
}

foreach ( @data ) {
    print scalar reverse;
}


__DATA__
one
two
three
four
five
six

私はそれが働くこと、または死ぬことを期待しました。私が得たものは予想外でした。

#!/usr/bin/env perluse strict;use warnings;use Tie::File;tie( my @data, 'Tie::File', \*DATA ) or die "Cannot tie DATA";foreach ( @data ) {    print;}foreach ( @data ) {    print scalar reverse;}__DATA__onetwothreefourfivesixlrep vne/nib/rsu/!#;tcirts esu;sgninraw esu;eliF::eiT esu;"ATAD eit tonnaC" eid ro ) ATAD*\ ,'eliF::eiT' ,[email protected] ym (eit{ ) [email protected] ( hcaerof;tnirp    }{ ) [email protected] ( hcaerof;esrever ralacs tnirp    }__ATAD__enoowteerhtruofevifxis

どのように __ DATA __ を Tie :: File に結び付けようとしていたのですが、それはスクリプトを結びつけ、 chomp

3 2011-10-27T20:38:29+00:00 1
 Community
Community
編集された質問 23日 5月 2017 в 12:11
プログラミング
perl
tie
mob
27日 10月 2011 в 8:46
2011-10-27T20:46:27+00:00
さらに
ソース
編集
#56792896

DATA ファイルハンドルは、それを参照するファイルのオープンファイルハンドルです。プログラムを最初に読み込んだときに、プログラムの __ DATA __ トークンまたは __ END __ トークンの後ろの最初のバイトを検索して、 。

* DATA を結ぶと、最初に読み込まれた魔法の邪魔になり、ファイルの先頭にあるソースファイルのハンドルが得られます。

data を最初に(または DATA <0,1 をシークする)ように呼び出すと、正しい位置と期待通りの「仕事」

4
0
質問の追加
カテゴリ
すべて
技術情報
文化・レクリエーション
生活・芸術
科学
プロフェッショナル
事業内容
ユーザー
すべて
新しい
人気
1
Roxana Elizabeth CASTILLO Avalos
登録済み 6日前
2
Hideo Nakagawa
登録済み 1週間前
3
Sergiy Tytarenko
登録済み 1週間前
4
shoxrux azadov
登録済み 1週間前
5
Koreets Koreytsev
登録済み 1週間前
© de-vraag :年
ソース
stackoverflow.com
ライセンス cc by-sa 3.0 帰属