📄 extract.pl
字号:
#!/usr/bin/perl# extract code fragments from xml program listings# first argument: source code file to find# second argument: xml files to extract code from# main# decodes xml by translating & < > back to what they should be# and also ignore# <![CDATA[ and ]]> and <!-- and -->subxml_decode ($){ my $input = shift; $input =~ s/\&/&/g; $input =~ s/</</g; $input =~ s/>/>/g; if ($input =~ /<!\[CDATA\[/) { $input = ""; } if ($input =~ /]]>/) { $input = ""; } if ($input =~ /<!--/) { $input = ""; } if ($input =~ /-->/) { $input = ""; } #print "Returning line $input"; return $input;}# mainmy $output = shift @ARGV;$found = 0;%blocks = ();foreach $file (@ARGV){ open FILE, $file or die "Cannot open file $file"; while ($line = <FILE>) { if ($line =~ /<!-- example-begin $output (.*?)-->/) { $found = 1; $block_id = $1; $block = "\n/*** block $block_id from $file ***/\n"; print "Extracting $output block $block_id from $file\n"; while ($line = <FILE>) { if ($line =~ /<!-- example-end $output (.*?)-->/) { last; } $block .= xml_decode ($line); } $blocks{$block_id} = $block; } }}if (!$found){ print "Could not find $output example !\n"; exit(1);}# now output all the blocks in the right orderopen OUTPUT, ">$output";@block_ids = keys %blocks;foreach $block_id (sort @block_ids){ print "Writing $output block $block_id\n"; print OUTPUT $blocks{$block_id};}close OUTPUT;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -