??????????£?????Щ???δ?????????open??????????????? close???????????? print?????д??????? write???????д????????? printf??????????????????????
1 : #!/usr/local/bin/perl?????????£?
2 :
3 : open (WOUT, "w|");
4 : $time = <WOUT>;
5 : $time =~ s/^ *//;
6 : $time =~ s/ .*//;
7 :; # skip headings line
8 : @users =;
9 : close (WOUT);
10: foreach $user (@users) {
11: $user =~ s/ .*//;
12: }
13: print ("Current time: $time");
14: print ("Users logged on:\n");
15: $prevuser = "";
16: foreach $user (sort @users) {
17: if ($user ne $prevuser) {
18: print ("\t$user");
19: $prevuser = $user;
20: }
21: }
Current time: 4:25pmw?????г??????????????????????????????????????????????е??????磺
Users logged on:
dave
kilroy
root
zarquon
?????д?w???????????????????????????????????????????3??????w?????????open????????w???????????????????????????WOUT?????????????4?ж????????????????4:25pm up 1 day, 6:37, 6 users, load average: 0.79, 0.36, 0.28 User tty login@ idle JCPU PCPU what dave ttyp0 2:26pm 27 3 w kilroy ttyp1 9:01am 2:27 1:04 11 -csh kilroy ttyp2 9:02am 43 1:46 27 rn root ttyp3 4:22pm 2 -csh zarquon ttyp4 1:26pm 4 43 16 cc myprog.c kilroy ttyp5 9:03am 2:14 48 /usr/games/hack
1: #!/usr/local/bin/perl???к????file1?е????????
2:
3: open (STDOUT, ">file1") || die ("open STDOUT failed");
4: open (STDERR, ">&STDOUT") || die ("open STDERR failed");
5: print STDOUT ("line 1\n");
6: print STDERR ("line 2\n");
7: close (STDOUT);
8: close (STDERR);
1 : #!/usr/local/bin/perl???????к????file1?????????
2 :
3 : open (STDOUT, ">file1") || die ("open STDOUT failed");
4 : open (STDERR, ">&STDOUT") || die ("open STDERR failed");
5 : $| = 1;
6 : select (STDERR);
7 : $| = 1;
8 : print STDOUT ("line 1\n");
9 : print STDERR ("line 2\n");
10: close (STDOUT);
11: close (STDERR);
1: #!/usr/local/bin/perl???н?????£?
2:
3: while ($line = <>) {
4: print ($line);
5: if (eof) {
6: print ("-- end of current file --\n");
7: }
8: }
$ program file1 file2?????eof???eof()??????????????
This is a line from the first file.
Here is the last line of the first file.
-- end of current file --
This is a line from the second and last file.
Here is the last line of the last file.
-- end of current file --
$
1: #!/usr/local/bin/perl???н?????£?
2:
3: while ($line = <>) {
4: print ($line);
5: if (eof()) {
6: print ("-- end of output --\n");
7: }
8: }
$ program file1 file2????????????????????????eof()??????棬?????????????????????β????????????????????????????
This is a line from the first file.
Here is the last line of the first file.
This is a line from the second and last file.
Here is the last line of the last file.
-- end of output --$
1: #!/usr/local/bin/perl2???????????????
2:
3: &open_file("INFILE", "", "file1");
4: &open_file("OUTFILE", ">", "file2");
5: while ($line = &read_from_file("INFILE")) {
6: &print_to_file("OUTFILE", $line);
7: }
8:
9: sub open_file {
10: local ($filevar, $filemode, $filename) = @_;
11:
12: open ($filevar, $filemode . $filename) ||
13: die ("Can't open $filename");
14: }
15: sub read_from_file {
16: local ($filevar) = @_;
17:
18: <$filevar>;
19: }
20: sub print_to_file {
21: local ($filevar, $line) = @_;
22:
23: print $filevar ($line);
24: }
| ?????? | seek |
| ?????? | seek (filevar, distance, relative_to); |
| ??? | ??????????/??????????????????? 1??filevar????????? 2??distance????????????????????????????????????? 3??reletive_to??????0??1??2???0??????????????????1??????????λ??????????????У???????2????????????β????? ???г???????棨??????????????????????tell???????á? |
| ?????? | tell |
| ?????? | tell (filevar); |
| ??? | ??????????????λ?????? ??? 1??seek??tell???????????????????????? 2??seek??tell??????????????????????? |
| ?????? | read |
| ?????? | read (filevar, result, length, skipval); |
| ??? | read??????????UNIX??fread??????Ч??????????????????????????????????????????????????? 1??filevar????????? 2??result???????????????????????????? 3??length???????????? 4??skipval?????????????????????????????? ????????????????????????????????β???????????????????????? |
| ?????? | sysread |
| ?????? | sysread (filevar, result, length, skipval); |
| ??? | ??????????????UNIX????read??Ч????????read????? |
| ?????? | syswrite |
| ?????? | syswrite (filevar, data, length, skipval); |
| ??? | ?????д?????????UNIX????write??Ч???????? 1??filevar?????д?????? 2??data???????д?????????? 3??length???д???????? 4??skipvalд??????????????????? |
| ?????? | getc |
| ?????? | $char = getc (infile); |
| ??? | ??????ж??????????? |
| ?????? | binmode |
| ?????? | binmode (filevar); |
| ??? | ?????????????DOS?????????????????????????????????á??????????????????????á? |
| ?????? | mkdir |
| ?????? | mkdir (dirname, permissions); |
| ??? | ????????????????? 1??dirname???????????????????????????????? 2??permissions??8?????????????????????????????????±????????????????????????? |
| ? | ??? |
| 4000 | ????????????ID |
| 2000 | ???????????ID |
| 1000 | ???λ |
| 0400 | ????????? |
| 0200 | ?????д??? |
| 0100 | ??????????? |
| 0040 | ?????? |
| 0020 | ??д??? |
| 0010 | ???????? |
| 0004 | ?????????? |
| 0002 | ??????д??? |
| 0001 | ???????????? |
| ?????? | chdir |
| ?????? | chdir (dirname); |
| ??? | ????????????????dirname???????????????????????? |
| ?????? | opendir |
| ?????? | opendir (dirvar, dirname); |
| ??? | ???????????漸???????????????????????б????????? 1??dirvar??????????????????????? 2??dirname????????????????????? ???????????????????? ????????п???????????????????????????????????????? |
| ?????? | closedir |
| ?????? | closedir (mydir); |
| ??? | ?????????? |
| ?????? | readdir |
| ?????? | readdir (mydir); |
| ??? | ???????????????θ????????????????????????????????????????????? |
| ?????? | telldir |
| ?????? | location = telldir (mydir); |
| ??? | ????????????????????telldir???????seekdir?????????б??????????? |
| ?????? | seekdir |
| ?????? | seekdir(mydir, location); |
| ??? | location?????telldir???????? |
| ?????? | rewinddir |
| ?????? | rewinddir (mydir); |
| ??? | ?????????λ????????????????????????б?? |
| ?????? | rmdir |
| ?????? | rmdir (dirname); |
| ??? | ?????????????????棨???????????????????????? |
| ?????? | rename |
| ?????? | rename (oldname, newname); |
| ??? | ???????????????????????У???????????????????? |
| ?????? | unlink |
| ?????? | num = unlink (filelist); |
| ??? | ???????????????????б???????????????????????? ???????????unlink??????delete??????????????????????????????? |
| ?????? | link |
| ?????? | link (newlink, file); |
| ??? | ?????????????????--??????file?????????????newlink?????????????? ????????棬???????? ????????????????е???????????????????????????????? |
| ?????? | symlink |
| ?????? | symlink (newlink, file); |
| ??? | ???????????????????????????????????????????????????????????????? ??????????????磺??unlinke?????????????????????????????????????????????????????????????? |
| ?????? | readlink |
| ?????? | filename = readlink (linkname); |
| ??? | ???linkname?????????????????????????????????????????? |
| ?????? | chmod |
| ?????? | chmod (permissions, filelist); |
| ??? | ?????????????????????? 1??permissions??????????????京???????mkdir?????? 2??filelist??????????????б? |
| ?????? | chown |
| ?????? | chown (userid, groupid, filelist); |
| ??? | ?????????????????????????? 1??userid??????????(????)ID?? 2??groupid???μ???(????)ID???-1???????? 3??filelist?????????????????б? |
| ?????? | umask |
| ?????? | oldmaskval = umask (maskval); |
| ??? | ??????????????????????????????? |
| ?????? | truncate |
| ?????? | truncate (filename, length); |
| ??? | ??????????????length?????????????????С??length???????κ????????filename????????????????????????? |
| ?????? | stat |
| ?????? | stat (file); |
| ??? | ??????????????file??????????????????????????б??????????? |
| ?????? | lstat |
| ?????? | lstat (file); |
| ??? | ??stat????????????file?????????????? |
| ?????? | time |
| ?????? | currtime = time(); |
| ??? | ?????1970??1??1????????????? |
| ?????? | gmtime |
| ?????? | timelist = gmtime (timeval); |
| ??? | ????time, stat ?? -A ?? -M ????????????????????????????????????????б??????????? ???UNIX??gmtime?????? |
| ?????? | localtime |
| ?????? | timelist = localtime (timeval); |
| ??? | ??gmtime??????????????????????????? |
| ?????? | utime |
| ?????? | utime (acctime, modtime, filelist); |
| ??? | ??????????????????????????????磺 $acctime = -A "file1"; $modtime = -M "file1"; @filelist = ("file2", "file3"); utime ($acctime, $modtime, @filelist); |
| ?????? | fileno |
| ?????? | filedesc = fileno (filevar); |
| ??? | ????????????UNIX?????????????filevar?????????? |
| ?????? | fcntl flock |
| ?????? | fcntl (filevar, fcntlrtn, value); flock (filevar, flockop); |
| ??? | ??????UNIX?????????? |
| ?????? | dbmopen |
| ?????? | dbmopen (array, dbmfilename, permissions); |
| ??? | ????????????DBM????????????????? 1??array?????ù??????? 2??dbmfilename????????DBM????? 3?????????????mkdir |
| ?????? | dbmclose |
| ?????? | dbmclose (array); |
| ??? | ???DBM????????????????????????? |