User Tools

Site Tools


ower_own_perl_wiki

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
ower_own_perl_wiki [2007/09/25 21:45] roumaniower_own_perl_wiki [2008/01/31 21:29] (current) – typo fix cs243050
Line 1: Line 1:
 ====== Our Own Perl Wiki ====== ====== Our Own Perl Wiki ======
 +
 +
  
  
Line 11: Line 13:
   * Control Structures (selection and iteration): same as Java plus **foreach** for hashes.   * Control Structures (selection and iteration): same as Java plus **foreach** for hashes.
  
-  * Cool stuff: interpolation, here-docs, regex, and web goodies such as param and &ENV.+  * Cool stuff: interpolation, here-docs, regex, and web goodies such as param and %ENV.
  
 ---- ----
 +
 +===== File I/O in Perl =====
 +**Default file handlers:**
 +  * STDIN: Standard input from console
 +  * STDOUT: Standard output to console
 +  * STDERR: Standard error output to console
 +
 +**Opening a file**
 +<code perl>
 +open(FILEHANDLE, filename)
 +</code>
 +Where FILEHANDLE specifes the name for the file handler in which you will refer to your file and filename specifies the location of your file.
 +
 +In the file name one can specify the various read/write modes.
 +^ Example      ^ Description       ^
 +| open(FILEHANDLE, <filename)      | opens the file for reading    | 
 +| open(FILEHANDLE, >filename)     | opens the file for writing    |
 +| open(FILEHANDLE, >>filename)     | opens the file for appending    |
 +| open(FILEHANDLE, +>filename)     | opens the file for reading and writing    |
 +| open(FILEHANDLE, +<filename)     | opens the file for reading and writing    |
 +| open(FILEHANDLE, +>>filename)     | opens the file for reading and writing    |
 +
 +File locking for I/O is provided using the **flock()** function. It is suggested to do the lock on a seperate file to prevent race conditions.
 +<code perl>
 +open(LOCK, ">write.lock")
 +flock(LOCK, LOCK_EX);
 +open(DATA, myFile);
 +#...do work with the DATA file...
 +close LOCK;
 +close DATA;
 +</code>
 +Closing the **LOCK** handler automatically unlocks the semaphore. One can also use **flock(LOCK, LOCK_UN)** to do the unlocking specifically. The flock function takes the following operation parameters:
 +^ Operation      ^ Description       ^
 +| LOCK_SH      | requests a shared lock for a file, will block until lock is obtained    | 
 +| LOCK_EX      | requests an exclusive lock for a file, will block until lock is obtained   
 +| LOCK_UN      | unlocks the previously locked file    | 
 +| LOCK_NB      | should be bitwise 'or'-ed with either LOCK_SH or LOCK_EX and will result in a non-blocking lock    | 
  
ower_own_perl_wiki.1190756722.txt.gz · Last modified: 2007/09/25 21:45 by roumani

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki