Perl5 リファレンス



       tie VARIABLE,CLASSNAME,LIST
               This function binds a variable to a package class
               that will provide the implementation for the
               variable.  VARIABLE is the name of the variable to
               be enchanted.  CLASSNAME is the name of a class
               implementing objects of correct type.  Any
               additional arguments are passed to the `new'
               method of the class (meaning `TIESCALAR',
               `TIEHANDLE', `TIEARRAY', or `TIEHASH').  Typically
               these are arguments such as might be passed to the
               `dbm_open()' function of C.  The object returned
               by the `new' method is also returned by the `tie'
               function, which would be useful if you want to
               access other methods in CLASSNAME.

               Note that functions such as `keys' and `values'
               may return huge lists when used on large objects,
               like DBM files.  You may prefer to use the `each'
               function to iterate over such.  Example:

                   # print out history file offsets
                   use NDBM_File;
                   tie(%HIST, 'NDBM_File', '/usr/lib/news/history', 1, 0);
                   while (($key,$val) = each %HIST) {
                       print $key, ' = ', unpack('L',$val), "\n";
                   }
                   untie(%HIST);

               A class implementing a hash should have the
               following methods:

                   TIEHASH classname, LIST
                   FETCH this, key
                   STORE this, key, value
                   DELETE this, key
                   CLEAR this
                   EXISTS this, key
                   FIRSTKEY this
                   NEXTKEY this, lastkey
                   DESTROY this

               A class implementing an ordinary array should have
               the following methods:

                   TIEARRAY classname, LIST
                   FETCH this, key
                   STORE this, key, value
                   FETCHSIZE this
                   STORESIZE this, count
                   CLEAR this
                   PUSH this, LIST
                   POP this
                   SHIFT this
                   UNSHIFT this, LIST
                   SPLICE this, offset, length, LIST
                   EXTEND this, count
                   DESTROY this

               A class implementing a file handle should have the
               following methods:

                   TIEHANDLE classname, LIST
                   READ this, scalar, length, offset
                   READLINE this
                   GETC this
                   WRITE this, scalar, length, offset
                   PRINT this, LIST
                   PRINTF this, format, LIST
                   CLOSE this
                   DESTROY this

               A class implementing a scalar should have the
               following methods:

                   TIESCALAR classname, LIST
                   FETCH this,
                   STORE this, value
                   DESTROY this

               Not all methods indicated above need be
               implemented.  See the perltie manpage, the
               Tie::Hash manpage, the Tie::Array manpage, the
               Tie::Scalar manpage, and the Tie::Handle manpage.

               Unlike `dbmopen', the `tie' function will not use
               or require a module for you--you need to do that
               explicitly yourself.  See the DB_File manpage or
               the Config module for interesting `tie'
               implementations.

               For further details see the perltie manpage, the
               section on "tied VARIABLE".


Perl5リファレンスに戻る