August 1997
Intermediate to advanced
432 pages
12h 19m
English
Tied filehandles call a user-defined
object whenever you read from or write to a filehandle, as shown in
Table 9.4. Note that the tie
statement takes a typeglob, not a bareword.
Table 9-4. tie and Filehandles
|
When you say: |
Perl translates it to: |
|---|---|
tie *FH, 'Foo', 'a','b' |
$obj = Foo-->TIEHANDLE('a','b');
|
<FH> |
$obj-->READLINE(); |
read (FH, $buf, $len, $offset) sysread (FH, $buf, $len, $offset) |
$obj->READ($buf, $len, $offset) |
getc(FH) |
$obj->GETC() |
print FH "I do"; #No comma after FH |
$obj-->PRINT("I do");
|
untie *FH; |
$obj-->DESTROY(); |
This method can be used to simulate a file or process with a test
driver or to monitor access to a filehandle for silently logging a
conversation (like the tee(1) command). Tk, which
we will study in detail in Chapter 14, supports
ties to let you redirect I/O to its text widget. We will look at a
small example of this feature when we study that widget.
Read now
Unlock full access