LogIn E-mail
¼³°èÀ̾߱â
[Perl]cfilter.pm - commant filter
# 57 JMJS    02.1.31 23:35

%cat cfilter.pl
#!/usr/bin/perl
require "cfilter.pm";

#==============================================================================#
package main;
#==============================================================================#
my $vwords = CFILTER::new();
open(IN,"$ARGV[0]");
my $aline; while($aline=<IN>) {
        my @os = CFILTER::cfilter($vwords,$aline);
        if(@os) { print join("|",@os)."|";}
}
close(IN);

%cat cfilter.pm
#!/bin/perl

#==============================================================================#
package CFILTER;
#==============================================================================#
#------------------------------------------------------------------------------#
sub new {
#------------------------------------------------------------------------------#
        my ($class, @data) = @_;
        my $ref = {};
        bless $ref, $class;
        CFILTER::init($ref,@data);
        return $ref;
}

#------------------------------------------------------------------------------#
sub init {
#------------------------------------------------------------------------------#
        my ($ref,@data) = @_;
        
        %$ref = (%$ref,
                "comment", "",
                "nline",   "");
        if(@data) { %$ref = (%$ref, @data);};
}

#------------------------------------------------------------------------------#
sub cfilter {
#------------------------------------------------------------------------------#
        my ($ref, @lines) = @_;
        my @olines = ();
        my $i; for($i=0;$i<=$#lines;$i++) {
                my @as = split('',$lines[$i]);
                my $j; for($j=0;$j<=$#as;$j++) {
                        if($as[$j] eq '\\') {
                                $$ref{'nline'} .= $as[$j].$as[$j +1];
                                $j++;
                        }
                        elsif($$ref{'comment'} eq '"') {
                                $$ref{'nline'} .= $as[$j];
                                if($as[$j] eq '"') {
                                        $$ref{'comment'} = "";
                                }
                        }
                        elsif(($$ref{'comment'} eq "\n")&&($as[$j] eq "\n")) {
                                $$ref{'nline'} .= $as[$j];
                                $$ref{'comment'} = "";
                        }
                        elsif(($$ref{'comment'} eq "*/")
                            &&($as[$j] eq '*')&&($as[$j +1] eq '/')) {
                                $j++;
                                $$ref{'comment'} = "";
                        }
                        elsif($$ref{'comment'}) {
                        }
                        elsif($as[$j] eq "\"") {
                                $$ref{'nline'} .= $as[$j];
                                $$ref{'comment'} = "\"";
                        }
                        elsif(($as[$j] eq '/')&&($as[$j +1] eq '*')) {
                                $j++;
                                $$ref{'comment'}="*/";
                        }
                        elsif(($as[$j] eq '/')&&($as[$j +1] eq '/')) {
                                $j++;
                                $$ref{'comment'}="\n";
                        }
                        else {
                                $$ref{'nline'} .= $as[$j];
                        }
                }
                if($$ref{'nline'}) {
                        push(@olines,$$ref{'nline'});
                        $$ref{'nline'} = "";
                }
        }
        @olines;
}

1;

÷ºÎÆÄÀÏ: cfilter.pl cfilter.pm
°Ô½Ã¹°: 115 °Ç, ÇöÀç: 1 / 1 ÂÊ
¹øÈ£ Á¦       ¸ñ ÀÛ¼ºÀÚ µî·ÏÀÏ ¹æ¹®
115  perl format JMJS 24.6.22 318
114  perl -p -i -e s/abc/def/g JMJS 24.3.26 333
113  Deleting from a Hash , defined , exists JMJS 25.7.9 348
112  yaml file Àбâ JMJS 23.11.30 386
111  alzipcon JMJS 22.11.26 427
110  file2date.pl JMJS 24.6.1 565
109  UTF-8, EUC-KR JMJS 19.12.15 522
108  wget.pl LWP Simple get JMJS 19.9.17 565
107  X JMJS 19.9.17 530
106  X JMJS 19.9.17 535
105  X JMJS 19.9.17 532
104  X JMJS 19.9.17 528
103  X JMJS 19.9.17 522
102  X JMJS 19.9.17 518
101  gnome-terminal JMJS 25.7.3 535
100  jsame.pl JMJS 09.5.21 2061
99  jos.pl JMJS 08.11.29 1782
98  jmngr.pl - jmjspro manager JMJS 08.11.29 1823
97  vhdl.pm JMJS 08.11.29 1796
96  jreg.pl JMJS 08.11.29 1786
95  jtree.pm JMJS 08.11.29 1847
94  w2c.pl JMJS 08.11.29 1822
93  jdread.pl JMJS 08.11.29 1593
92  ffile.zip ffilediff.pl JMJS 09.4.24 1648
91  rgb2ycbcr.pl JMJS 10.5.12 1956
90  proview.pl JMJS 08.11.29 2040
89  smi_shift.pl JMJS 10.10.3 1629
88  srt2smi.pl srtshift.pl JMJS 18.7.14 1828
87  Perl CGI Input Test, getenv.cgi JMJS 18.11.21 1512
86  hash JMJS 24.6.22 1761
85  tr a-z A-Z ġȯ , ´ë¼Ò¹®ÀÚ º¯È¯ , ¹®ÀÚ¿­ Á¶°Ç , ... JMJS 24.6.22 1555
84  JARRAY->jfunc JMJS 08.10.2 1537
83  ¼öÄ¡ÇÔ¼ö - ... JMJS 09.5.7 2039
82  ¿ªÇà·Ä3x3 JMJS 09.5.7 2065
81  hex2int.pl JMJS 10.9.12 2786
80  stat - file status º¸±â JMJS 07.12.16 1646
79  Perl Tip JMJS 24.6.22 2801
78  SMI file sync delay JMJS 07.7.18 1727
77  rmword.pl JMJS 07.6.18 1667
76  pack unpack JMJS 24.6.22 1602
75  [Perl]read_dir.pl JMJS 07.2.22 1880
74  [Perl]jtab2char - tab¹®ÀÚ¸¦ ƯÁ¤ char·Î ¹Ù²ãÁÖ±â JMJS 07.2.22 1846
73  Perl ¼ýÀÚ Sorting JMJS 11.5.17 1905
72  [CGI]GET and POST JMJS 06.11.20 3552
71  Perl Grammer JMJS 06.9.4 3145
70  Ç¥ÁØ ¸ðµâ JMJS 06.8.10 2045
69  Getopt::Long example JMJS 06.8.10 2216
68  array of array JMJS 06.4.22 1654
67  [HTML]Å×ÀÌºí ¹è°æ¿¡ ±×¸²³Ö±â JMJS 06.3.8 1727
66  l2w.pm - line to word JMJS 08.12.1 1741
65  make_random_chars JMJS 05.8.10 1561
64  mail º¸³»´Â script JMJS 05.3.23 1540
63  ½ÇÇàÆÄÀÏÀ» ½ÇÇà½Ã۰í Ç¥ÁØ¿¡·¯ Àбâ JMJS 09.2.25 1570
62  ÆË¾÷â(°øÁöâ)¶ç¿ì±â Jinsung 03.12.16 2620
61  print <<ENDLINE JMJS 03.12.5 1640
60  [HTML]Target JMJS 03.5.21 1661
59  [Perl]jutil.pm JMJS 03.5.3 1903
58  [Perl]jdiff.pl JMJS 02.6.6 1838
57  [Perl]cfilter.pm - commant filter JMJS 02.1.31 1847
56  [HTML]ÀÚµ¿À¸·Î ´Ù¸¥ ÆäÀÌÁö À̵¿ JMJS 02.1.19 1684
55  STDIN file open glob -w warning JMJS 24.6.22 1730
54  opendir , readdir , closedir JMJS 24.6.22 1723
53  rand_diff JMJS 01.10.23 1616
52  vcd2v.pl JMJS 15.8.25 1680
51  file upload JMJS 24.6.22 1630
50  umask(070) <- chmod o-rwx Áø¼º 01.3.16 1792
49  head2index Áø¼º 01.3.15 1518
48  grep.pl JMJS 11.1.20 1617
47  chr(13) = \M Áø¼º 01.3.15 1475
46  stty JMJS 01.3.12 1598
45  des.pl JMJS 01.3.8 1577
44  chr_plus.pl JMJS 01.3.8 1567
43  get passwd in unix JMJS 19.8.18 1425
42  unsort JMJS 19.9.10 1667
41  read from website web JMJS 19.5.15 1452
40  vec JMJS 01.3.8 1719
39  chomp $_ @_ say defined use 5.010 state grep any ... JMJS 18.10.27 1629
38  [Perl Tk] µµ½ºÃ¢ ¾øÀÌ, ÆÞ Tk ½ºÅ©¸³Æ® ½ÇÇàÇϱâ; ... JMJS 17.9.30 1592
37  @bs = sort {$a <=> $b} @as; JMJS 17.7.12 1662
36  if ( -e -z -s -f -d -T -B -M ) JMJS 16.3.10 1749
35  mkmm.pl - make freemind JMJS 12.5.22 1702
34  perl -pi.orig -e "s/\bu_(\w+_t)\b/u$1/g" *.c JMJS 11.8.26 1682
33  .xls output csv ÆÄÀÏ¿¡ \n "°¡ ÀÖÀ»¶§ JMJS 11.4.13 1600
32  jdcat.pl juncat.pl JMJS 11.2.24 1735
31  print chr(ord('a')); JMJS 01.3.8 1639
30  require "/user/home/jin1/jin1.pm"; JMJS 00.11.28 1574
29  for(my $i=0; $i < @abc; $i ++) {} JMJS 00.11.15 1681
28  remove blank $abc =~ s/[\s]+//g; Á¤±ÔÇ¥Çö½Ä ... JMJS 25.7.16 1590
27  array and for JMJS 00.11.14 1443
26  È¨ÆäÀÌÁö ÀÚµ¿ À̵¿ JMJS 00.10.28 1532
25  html¿¡¼­ ¾²ÀÌ´Â ±âȣǥ½Ã¹æ¹ý JMJS 00.9.30 1463
24  ¹è¿­ÀÇ ¹üÀ§ ¿¬»êÀÚ JMJS 00.9.20 1769
23  for(1..3) { print "$_";} JMJS 09.4.24 1459
22  package JMJS 24.6.22 1512
21  ÁÙ¿¡¼­ ÇѱÛÀÚ °íÄ¡±â JMJS 00.8.7 1571
20  hotkey function by getc JMJS 00.7.21 1647
19  read, sysread, syswrite JMJS 00.7.21 2529
18  crypt JMJS 00.7.13 1795
17  csv2gan.pl JMJS 11.4.4 1791
16  hexa JMJS 24.6.18 1610
15  file in out.pl JMJS 00.7.5 1796
14  ARGV JMJS 00.7.5 1623
13  jtime.pm - localtime, timelocal JMJS 09.4.9 2127
12  @INC JMJS 00.7.5 1983
11  $#myarray JMJS 00.7.5 1742
10  Hash of Array JMJS 00.7.5 1556
9  package JARRAY JHASH JMJS 00.7.4 1826
8  foreach, while each, dos2unix.pl, next last JMJS 09.4.24 1805
7  base64 enc dec binary JMJS 25.6.30 1591
6  file lock JMJS 00.7.4 1681
5  gettime JMJS 00.7.4 1707
4  [Perl]jcdread.pl JMJS 00.7.4 1763
3  [Perl]jdread.pl JMJS 00.7.4 1651
2  Monti Hall problem JMJS 24.6.27 1634
1  DESTROY JMJS 09.7.20 1596
[1]