mirror of
https://github.com/kennethreitz/dive-into-python3.git
synced 2026-06-05 23:10:17 +00:00
229 lines
17 KiB
XML
229 lines
17 KiB
XML
<?xml version="1.0" encoding="IBM866"?>
|
||
<!--
|
||
Source: http://forum.template-toolkit.ru/rss/forum_8.rss
|
||
Expect: IBM866
|
||
-->
|
||
<rss version="2.0">
|
||
<channel>
|
||
<title>”®àã¬ë Template Toolkit : �¨¡«¨®â¥ª¨ ¤«ï à ¡®âë á è ¡«® ¬¨ ¢ Perl</title>
|
||
<link>http://forum.template-toolkit.ru/view_forum/forum_id-8.html?rss</link>
|
||
<description>Template Toolkit - ¡ëáâà ï, ¬®é ï ¨ à áè¨à塞 ï á¨á⥬ ®¡à ¡®âª¨ è ¡«®®¢. � á ©â¥ à ¡®â ¥â ä®àã¬, ¢ ª®â®à®¬ ®¡á㦤 îâáï ¢®¯à®áë ¨á¯®«ì§®¢ ¨ï ¡¨¡«¨®â¥ª¨ ¯® à ¡®â¥ á è ¡«® ¬¨. Text::Template, HTML::Template, Mason ¨ ¤à㣨¥ ¡¨¡«¨®â¥ª¨</description>
|
||
<language>ru</language>
|
||
<copyright>Lobanov Igor</copyright>
|
||
<webMaster>Lobanov Igor <webmaster@template-toolkit.ru></webMaster>
|
||
<pubDate>Thu, 17 Mar 2005 12:03:32 GMT</pubDate>
|
||
<lastBuildDate>Wed, 4 Jan 2006 02:29:01 GMT</lastBuildDate>
|
||
<managingEditor>Perl script, Template Toolkit</managingEditor>
|
||
<image>
|
||
<url>http://forum.template-toolkit.ru/images/tt2powered.gif</url>
|
||
<title>Template Toolkit - è ¡«®ë ¢ perl</title>
|
||
<link>http://forum.template-toolkit.ru/</link>
|
||
<width>88</width>
|
||
<height>31</height>
|
||
</image>
|
||
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
|
||
<item>
|
||
<guid isPermaLink="true">http://forum.template-toolkit.ru/view_topic/topic_id-53.html?rss</guid>
|
||
<pubDate>Tue, 28 Dec 2004 19:07:19 GMT</pubDate>
|
||
<title>� §¤¥«¥¨¥ ª®¤ , ¯à¥¤áâ ¢«¥¨ï, ¨ ª®ä¨£ãà æ¨¨</title>
|
||
<link>http://forum.template-toolkit.ru/view_topic/topic_id-53.html?rss</link>
|
||
<description>� <a target="_blank" href="http://www.theperlreview.com/">Perl Review</a> ®¯ã¡«¨ª®¢ áâ âìï �à © ¤¥ ”®ï (brian d foy) &quot;Separating Code, Presentation, and Configuration&quot;. �¨¦¥ ¯à¨¢®¤¨âáï ¯¥à¥¢®¤ áâ âì¨.<br /><br /><span style="font-weight:bold">Šà ⪨© ®¡§®à.</span><br /><br />Ÿ ¢§ï« ¯à®£à ¬¬ã ¨§ ¯à¥¤ë¤ã饩 áâ âì¨ ¨ à §¤¥«¨« ª®¤, ¯à¥¤áâ ¢«¥¨¥ ¨ ª®ä¨£ãà æ¨î, ç⮡ë ᤥ« âì ¯à®£à ¬¬ã ¡®«¥¥ £¨¡ª®© ¨ «¥£ª®© ¤«ï ¯®¤¤¥à¦ª¨.<br /><br /><span style="font-weight:bold">1. ‚¢¥¤¥¨¥.</span><br /><br />‚ ¯®á«¥¤¥¬ ¢ë¯ã᪥ ï ¯à¥¤áâ ¢¨« ¯à®£à ¬¬ã, ª®â®àãî ï ¨á¯®«ì§ãî ¤«ï ⮣®, çâ®¡ë § ¡¨à âì ¨ ®â®¡à ¦ âì Rich Site Summaries (RSS) á ¤àã£¨å ¢¥¡-á ©â®¢<span style="font-weight:bold"><sup>1</sup></span>. ‚ ª®¤¥ ï ¨á¯®«ì§®¢ « «¨â¥à «ìë¥ ¢¥«¨ç¨ë, ç⮡ë 㪠§ âì ª ª¨¥ ä ©«ë § £à㦠âì ¨ ª ª ¯à¥¤áâ ¢«ïâì ¤ ë¥, ¨ ®¡¥é « çâ® ¢ í⮬ ¢ë¯ã᪥ ï íâ® ¨á¯à ¢«î.<br /><br /><span style="font-style:italic">‹¨á⨣ 1</span> ᮤ¥à¦¨â ¯à®£à ¬¬ã, ª®â®àãî ï ¯à¥¤áâ ¢«ï« ¢ ¯à¥¤ë¤ã饬 ¢ë¯ã᪥. ‚ ¬ áᨢ¥ <span style="font-weight:bold">@files</span> åà ïâáï ä ©«ë, ª®â®àë¥ ¥®¡å®¤¨¬® § £à㧨âì, <span style="font-weight:bold">$base</span> - ª â «®£, £¤¥ á®åà ï¥âáï ¢ë¢®¤, ¨ ¥áª®«ìª® ¢ëà ¦¥¨© <span style="font-weight:bold">print</span> á®§¤ îâ HTML á ¯®¤áâ ®¢ª®© ¯à®áâëå ¯¥à¥¬¥ëå (çâ® ¯à¥¤¯®çâ¨â¥«ì¥¥ ᪠¦¥¬ 祬 ¨á¯®«ì§®¢ âì HTML-äãªæ¨¨ ¬®¤ã«ï CGI). �â® ¥£¨¡ª¨© ¨ âàã¤ë© ¤«ï ᮯ஢®¦¤¥¨ï ª®¤. Š®£¤ ï § å®çã ¯®¬¥ïâì ᯨ᮪ á ©â®¢ ¨«¨ ¢ë¢®¤, ï à¨áªãî á«®¬ âì ¯à®£à ¬¬ã, ¥á«¨ ¡¥àã çâ®-â® ¥¯à ¢¨«ì® ¨«¨ ᤥ« î ¤àã£ãî ®è¨¡ªã.<br /><br /><span style="font-style:italic">‹¨á⨣ 1: ‡ £àã§ç¨ª RSS á ¦¥á⪮¯à®¯¨á 묨 § 票ﬨ.</span><br /><div class="code"><pre>1 #!/usr/bin/perl -w
|
||
2 use strict;
|
||
3
|
||
4 use LWP::Simple;
|
||
5 use XML::RSS;
|
||
6
|
||
7 my @files = qw(
|
||
8 http://use.perl.org/useperl.rss
|
||
9 http://search.cpan.org/rss/search.rss
|
||
10 http://jobs.perl.org/rss/standard.rss
|
||
11 http://www.perl.com/pace/perlnews.rdf
|
||
12 http://www.perlfoundation.org/perl-foundation.rdf
|
||
13 http://www.stonehenge.com/merlyn/UnixReview/ur.rss
|
||
14 http://www.stonehenge.com/merlyn/WebTechniques/wt.rss
|
||
15 http://www.stonehenge.com/merlyn/LinuxMag/lm.rss
|
||
16 );
|
||
17
|
||
18 my $base = '/usr/home/comdog/TPR/rss-html';
|
||
19
|
||
20 foreach my $url ( @files )
|
||
21 {
|
||
22 my $file = $url;
|
||
23
|
||
24 $file =~ s|.*/||;
|
||
25
|
||
26 my $result = open my $fh, &quot;&gt; $base/$file.html&quot;;
|
||
27
|
||
28 unless( $result )
|
||
29 {
|
||
30 warn &quot;Could not open [$file] for writing! $!&quot;;
|
||
31 next;
|
||
32 }
|
||
33
|
||
34 select $fh;
|
||
35
|
||
36 my $rss = XML::RSS-&gt;new();
|
||
37 my $data = get( $url );
|
||
38 $rss-&gt;parse( $data );
|
||
39
|
||
40 my $channel = $rss-&gt;{channel};
|
||
41 my $image = $rss-&gt;{image};
|
||
42
|
||
43 print &lt;&lt;&quot;HTML&quot;;
|
||
44 &lt;table cellpadding=1&gt;&lt;tr&gt;&lt;td bgcolor=&quot;#000000&quot;&gt;
|
||
45 &lt;table cellpadding=5&gt;
|
||
46 &lt;tr&gt;&lt;td bgcolor=&quot;#aaaaaa&quot; align=&quot;center&quot;&gt;
|
||
47 HTML
|
||
48
|
||
49 if( $image-&gt;{url} )
|
||
50 {
|
||
51 my $img = qq|&lt;img src=&quot;$$image{url}&quot; alt=&quot;$$channel{title}&quot;&gt;|;
|
||
52 print qq|&lt;a href=&quot;$$channel{link}&quot;&gt;$img&lt;/a&gt;&lt;br&gt;\n|;
|
||
53 }
|
||
54 else
|
||
55 {
|
||
56 print qq|&lt;a href=&quot;$$channel{link}&quot;&gt;$$channel{title}&lt;/a&gt;&lt;br&gt;\n|;
|
||
57 }
|
||
58
|
||
59 print &lt;&lt;&quot;HTML&quot;;
|
||
60 &lt;font size=&quot;-1&quot;&gt;$$channel{description}&lt;/font&gt;
|
||
61 &lt;/td&gt;&lt;/tr&gt;
|
||
62 &lt;tr&gt;&lt;td bgcolor=&quot;#bbbbff&quot; width=200&gt;&lt;font size=&quot;-1&quot;&gt;
|
||
63 HTML
|
||
64
|
||
65 foreach my $item ( @{ $rss-&gt;{items} } )
|
||
66 {
|
||
67 print qq|&lt;b&gt;&gt;&lt;/b&gt;&lt;a href=&quot;$$item{link}&quot;&gt;$$item{title}&lt;/a&gt;&lt;br&gt;&lt;br&gt;\n|;
|
||
68 }
|
||
69
|
||
70 print &lt;&lt;&quot;HTML&quot;;
|
||
71 &lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
|
||
72 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
|
||
73 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
|
||
74 HTML
|
||
75
|
||
76 close $fh;
|
||
77 }</pre></div><br /><br /><span style="font-weight:bold">2. Žâ¤¥«¥¨¥ ¯à¥¤áâ ¢«¥¨ï.</span><br /><br />•®à®è¨© ¤¨§ © ¥ á¢ï§ë¢ ¥â ᥡï á ç áâë¬ ¯à¥¤áâ ¢«¥¨¥¬ ¤ ëå. Œ®ï ¯à®£à ¬¬ ¤®«¦ § ¡à âì ¤ ë¥ ¨ ᤥ« âì ¨å ¤®áâã¯ë¬¨ 祬ã-â®, çâ® ¨å ¯à¥¤áâ ¢«ï¥â - â®, çâ® ï à ¡®â î á RSS ¥ ¤®«¦® ¨¬¥âì § 票ï. Ÿ ¬®£ã § å®â¥âì ¯à®¨§¢®¤¨âì HTML, TeX, ¯à®á⮩ ⥪áâ, ¨«¨ ¤ ¦¥ ª ª®©-â® ä®à¬ â, ª®â®àë© ¥ ¬®£ã ᥡ¥ ¯à¥¤áâ ¢¨âì.<br /><br />‚®§¬®¦® ªâ®-â® § å®ç¥â ¯¨á âì ᮡá⢥ãî á¨á⥬㠤«ï à ¡®âë á è ¡«® ¬¨, ® ¬¥ à ¢¨âáï ¬®¤ã«ì Text::Template Œ ઠ-„¦¥©á® „®¬¨ãá (Mark-Jason Dominus). Ž ¤¥« ¥â ¢á¥ çâ® ¬¥ ¥®¡å®¤¨¬®, ¥ âॡã¥â ¤«ï ᢮¥© à ¡®âë ¤®¯®«¨â¥«ìëå ¯à®£à ¬¬ ¨ ¯¨á ¯®«®áâìî Perl. “ ¥£® ¯à®á⮩ ¨â¥àä¥©á ¨ ¬¥ ¥ âॡã¥âáï ¨§ãç âì ï§ëª è ¡«®®¢, ¯®áª®«ìªã è ¡«®ë ¨á¯®«ì§ãîâ Perl.<br /><br /><span style="font-style:italic">‹¨á⨣ 2</span> - íâ® â ¦¥ ¯à®£à ¬¬ , ⮫쪮 ¢¬¥áâ® ¢¥¤à¥®£® HTML ¨á¯®«ì§ã¥âáï Text::Template. ‚ áâப¥ 5 ï ¨¬¯®àâ¨àãî ¬¥â®¤ fill_in_file(). ‚ áâப¥ 13 㪠§ë¢ î è ¡«®, ª®â®àë© ¡ã¤ã ¨á¯®«ì§®¢ âì. ‚¥áì HTML, ¨á¯®«ì§ã¥¬ë© ¯à®£à ¬¬®©, ⥯¥àì ¢ë¥á¥ ¢ ä ©« è ¡«® , ¯à¨¢¥¤¥ë© ¢ <span style="font-style:italic">«¨á⨣¥ 3</span>.<br /><br />Œ®¤ã«ì Text::Template ¬®¦¥â ¯à¨¨¬ âì ¤ ë¥ ª ª å¥è. Š«îç¨ å¥è áâ ®¢ïâáï ¨¬¥ ¬¨ ¯¥à¥¬¥ëå ¢ è ¡«®¥, § 票ï - § 票ﬨ ¯¥à¥¬¥ëå è ¡«® , â ª¦¥ ®¯à¥¤¥«ïîâ ⨯ ¯¥à¥¬¥ëå. …᫨ § 票¥ å¥è ¯à®á⮩ ᪠«ïà, ¯¥à¥¬¥ ï è ¡«® ᪠«ïà. …᫨ § 票¥ å¥è - ®¨¬ë© ¬ áᨢ, ¯¥à¥¬¥ ï è ¡«® - ¬ áᨢ, ¨ â ª ¤ «¥¥.<br /><br />Ž¡ê¥ªâ, á®§¤ ¢ ¥¬ë© XML::RSS - ®¨¬ë© å¥è. Œ®¤ã«ì ¯à¥¤®áâ ¢«ï¥â ¡áâà ªâë© ¨â¥àä¥©á ¤«ï á®§¤ ¨ï, ® ¥ ¤«ï ¤®áâ㯠. �â® ®âç á⨠¨¬¥® â®, çâ® ï ¤®«¦¥ ¯¥à¥¤ âì ¬®¥¬ã è ¡«®ã. ‚ è ¡«®¥ <span style="font-weight:bold">$rss-&gt;channel</span>, ª®â®à ï ¢ ª ç¥á⢥ § 票ï ᮤ¥à¦¨â ®¨¬ë© å¥è, áâ ®¢¨âáï <span style="font-weight:bold">%channel</span>, <span style="font-weight:bold">$rss-&gt;items</span>, ᮤ¥à¦ é ï ®¨¬ë© ¬ áᨢ áâ ®¢¨âáï <span style="font-weight:bold">@items</span>.<br /><br /><span style="font-style:italic">‹¨á⨣ 2: ˆá¯®«ì§®¢ ¨¥ è ¡«® .</span><br /><div class="code"><pre>1 #!/usr/bin/perl -w
|
||
2 use strict;
|
||
3
|
||
4 use LWP::Simple;
|
||
5 use Text::Template qw(fill_in_file);
|
||
6 use XML::RSS;
|
||
7
|
||
8 my @files = qw(
|
||
9 http://use.perl.org/useperl.rss
|
||
10 );
|
||
11
|
||
12 my $base = '.';
|
||
13 my $template = 'rss-html.tmpl';
|
||
14
|
||
15 foreach my $url ( @files )
|
||
16 {
|
||
17 my $file = $url;
|
||
18
|
||
19 $file =~ s|.*/||;
|
||
20
|
||
21 my $result = open my $fh, &quot;&gt; $base/$file.html&quot;;
|
||
22
|
||
23 unless( $result )
|
||
24 {
|
||
25 warn &quot;Could not open [$file] for writing! $!&quot;;
|
||
26 next;
|
||
27 }
|
||
28
|
||
29 my $rss = XML::RSS-&gt;new();
|
||
30 my $data = get( $url );
|
||
31 $rss-&gt;parse( $data );
|
||
32
|
||
33 print fill_in_file( $template, HASH =&gt; $rss );
|
||
34 close $fh;
|
||
35 }</pre></div><br /><br />‚ãâà¨ è ¡«® Text::Template ¨á¯®«ï¥â ¡«®ª¨ ª®¤ , ª®â®àë¥ ® 室¨â ¬¥¦¤ã 䨣ãà묨 ᪮¡ª ¬¨. Ž § ¬¥ï¥â ¡«®ª ¯®á«¥¤¨¬ ¢ëç¨á«¥ë¬ ¢ëà ¦¥¨¥¬. ˆ¬¥ ¯¥à¥¬¥ëå - ª«îç¨ å¥è , áá뫪㠪®â®àë© ï ¯¥à¥¤ « ¢ ª ç¥á⢥ à£ã¬¥â äãªæ¨¨ fill_in_file() ¢ ª®¤¥, ¯à¨¢¥¤¥®¬ ¢ <span style="font-style:italic">«¨á⨣¥ 2</span>.<br /><br /><span style="font-style:italic">‹¨á⨣ 3: HTML è ¡«®.</span><br /><div class="code"><pre>1 &lt;table cellpadding=1&gt;&lt;tr&gt;&lt;td bgcolor=&quot;#000000&quot;&gt;
|
||
2 &lt;table cellpadding=5&gt;
|
||
3 &lt;tr&gt;
|
||
4 &lt;td bgcolor=&quot;#aaaaaa&quot; align=&quot;center&quot;&gt;
|
||
5 &lt;a href=&quot;{ $channel{link} }&quot;&gt;{
|
||
6
|
||
7 $image ? qq|&lt;img src=&quot;$image&quot; alt=&quot;$channel{title}&quot;&gt;| : $channel{title}
|
||
8
|
||
9 }&lt;/a&gt;&lt;br&gt;
|
||
10
|
||
11 { $channel{description} }
|
||
12 &lt;/td&gt;
|
||
13 &lt;/tr&gt;
|
||
14
|
||
15 &lt;tr&gt;
|
||
16 &lt;td bgcolor=&quot;#bbbbff&quot; width=200&gt;&lt;font size=&quot;-1&quot;&gt;
|
||
17 {
|
||
18 my $str;
|
||
19
|
||
20 foreach my $item ( @items )
|
||
21 {
|
||
22 $str .= qq|&lt;b&gt;&gt;&lt;/b&gt;&lt;a href=&quot;$$item{link}&quot;&gt;$$item{title}&lt;/a&gt;&lt;br&gt;&lt;br&gt;\n|;
|
||
23 }
|
||
24
|
||
25 $str;
|
||
26 }&lt;/font&gt;&lt;/td&gt;
|
||
27 &lt;/tr&gt;
|
||
28 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
|
||
29 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</pre></div><br /><br />Š ª ⮫쪮 á¨á⥬ è ¡«®®¢ § ¤¥©á⮢ , ï ¬®£ã ¬¥ïâì ¯à¥¤áâ ¢«¥¨¥ ¥ ¬¥ïï «®£¨ªã ª®¤ . …᫨ ï ¯à¨¬ã à¥è¥¨¥ ¨§¬¥¨âì ¢¨¤ ¯à¥¤áâ ¢«¥¨ï ¤ ëå, ï ¯®¬¥ïî ⮫쪮 è ¡«®. …᫨ ¬¥ ¢¬¥áâ® HTML âॡã¥âáï ¯à®á⮩ ⥪áâ, ï ⮫쪮 ¨§¬¥î ¯®¤ ®¢ë© ä®à¬ â è ¡«®, ª ª í⮠ᤥ« ® ¢ <span style="font-style:italic">«¨á⨣¥ 4</span>.<br /><br /><span style="font-style:italic">‹¨á⨣ 4: ˜ ¡«® ¤«ï ®¡ë箣® ⥪áâ .</span><br /><div class="code"><pre>1 { $channel{title} }
|
||
2
|
||
3 { $channel{description} }
|
||
4
|
||
5 {
|
||
6 my $str;
|
||
7
|
||
8 foreach my $item ( @items )
|
||
9 {
|
||
10 $str .= qq|* $$item{title}\n|;
|
||
11 }
|
||
12
|
||
13 $str;
|
||
14 }</pre></div><br /><br /><span style="font-weight:bold">3. Žâ¤¥«¥¨¥ ª®ä¨£ãà æ¨¨.</span><br /><br />•®à®è¨© ¤¨§ © â ª¦¥ ¯®§¢®«ï¥â ¤ ¯â¨à®¢ âì áªà¨¯â ª à §«¨ç®¬ã ®ªà㦥¨î. ‚ <span style="font-style:italic">«¨á⨣¥ 1</span> ï ¦¥á⪮ ¯à®¯¨á « § 票¥ ¤¨à¥ªâ®à¨¨ ¤«ï ¢ë¢®¤ , çâ® ¤¥« ¥â ¬®© áªà¨¯â åà㯪¨¬ - ¥á«¨ ¬®ï ¤®¬ èïï ¤¨à¥ªâ®à¨ï ¯®¬¥ï¥âáï, áªà¨¯â á«®¬ ¥âáï. Šà®¬¥ ⮣® <span style="font-style:italic">¢ «¨á⨣¥ 2</span> ¦¥á⪮ ¯à®¯¨á ® ¨¬ï è ¡«® , ¥á¬®âàï â® çâ® ï ¬®£ã ¬¥ïâì ¯à¥¤áâ ¢«¥¨¥, ¨§¬¥ïï è ¡«®. Œ¥ 㦮 ¨¬¥âì ¢®§¬®¦®áâì ¤ ¢ âì ª ¦¤®¬ã è ¡«®ã ᮤ¥à¦ ⥫쮥 ¨¬ï ¢¬¥áâ® ¨á¯®«ì§®¢ ¨ï ®¤®£® ¨ ⮣® ¦¥ ¨¬¥¨ ¤«ï à §®£® ᮤ¥à¦¨¬®£®.<br /><br />Œ®£¨¥ ᢮¡®¤®-¤®áâã¯ë¥ áªà¨¯âë, ª®â®àë¥ ï 襫 ¢ ˆâ¥à¥â âॡãîâ, çâ®¡ë ¯®«ì§®¢ â¥«ì ®â। ªâ¨à®¢ « ¢¥àåîî ç áâì áªà¨¯â ¨«¨ ¢ª«îç ¥¬ãî ¡¨¡«¨®â¥ªã, ª®â®à ï ᮤ¥à¦¨â ⮫쪮 ª®ä¨£ãà æ¨®ë¥ ¤ ë¥. ’ ª®© ¯®¤å®¤ âॡã¥â, çâ®¡ë ª®¥çë© ¯®«ì§®¢ â¥«ì § « ®á®¢ë ï§ëª ¯à®£à ¬¬¨à®¢ ¨ï ¨ ¯à ¢¨« áªà¨¯â - ®è¨¡ª á«®¬ ¥â áªà¨¯â. �«®å¨¥ ª®ä¨£ãà æ¨®ë¥ ¤ ë¥ ¬®£ã⠯ਢ¥á⨠ª ¥®¦¨¤ ë¬ à¥§ã«ìâ â ¬, ® ®¨ ¥ ¯®«®¬ îâ ¯à®£à ¬¬ã.<br /><br />Ÿ ¬®£ã 㪠§ âì ⥪ã騥 ª®ä¨£ãà æ¨®ë¥ ¤ ë¥ ¥áª®«ìª¨¬¨ ᯮᮡ ¬¨ ¨ ¯®ª ¦ã ⮫쪮 ®¤¨ ¨§ ¨å. €à娢 Comprehensive Perl Archive Network (CPAN)<span style="font-weight:bold"><sup>2</sup></span> ᮤ¥à¦¨â ¥áª®«ìª® ¬®¤ã«¥© ¤«ï à §¡®à ª®ä¨£ãà æ¨®ëå ä ©«®¢ ¢ à §«¨çëå ä®à¬ â å ¨«¨ à£ã¬¥â®¢ ª®¬ ¤®© áâப¨. „¨§ ©¥àë ¤®«¦ë ¢ë¡¨à âì ¯®¤å®¤, ª®â®àë© ã¤®¢«¥â¢®àï¥â ¨å 㦤 ¬.<br /><br />Š®£¤ ï ¢¯¥à¢ë¥ ç « ®â¤¥«ïâì ¤ ë¥ ª®ä¨£ãà æ¨¨ ®â ¬®¨å áªà¨¯â®¢, ï ¯¥à¥¡à « ¥áª®«ìª® ¬®¤ã«¥© CPAN ¨ ®áâ ®¢¨«áï ConfigReader::Simple, ª®â®àë© ¨á¯®«ì§ã¥â ¯®áâà®çë© ä®à¬ â ª«îç-§ 票¥. Ÿ ¨á¯®«ì§®¢ « ¥£® á⮫쪮 ç áâ®, çâ® ç « ®â¯à ¢«ïâì ¬®¨ ¨§¬¥¥¨ï �¥ªã Ž¡¥à¨ã (Bek Oberin), ¢â®à㠮ਣ¨ «ì®© ¢¥àᨨ, § ⥬ ¯®«®áâìî ¢§ï« á¥¡ï ¯®¤¤¥à¦ªã ¬®¤ã«ï.<br /><br /><span style="font-style:italic">‹¨á⨣ 5</span> ¤ ¯â¨àã¥â <span style="font-style:italic">«¨á⨣ 2</span> ª ¨á¯®«ì§®¢ ¨î ConfigReader::Simple. Ÿ á®§¤ î ®¢ë© ®¡ê¥ªâ ª®ä¨£ãà æ¨¨, § ⥬ ç¨â î § ç¥¨ï ¨§ ®¡ê¥ªâ . Œ®¤ã«ì ¯à¥®¡à §ã¥â ¨¬¥ ª«î祩 ª®ä¨£ãà æ¨¨ ¢ ¨¬¥ ¬¥â®¤®¢ ¤«ï ¯à®á⮣® ¤®áâ㯠(å®âï ¤«ï ¤®áâ㯠ª § ç¥¨ï¬ ª«î祩 á íª§®â¨ç¥áª¨¬¨ ¨¬¥ ¬¨, ª®â®àë¥ ¥ ¬®£ãâ ¡ëâì ¯à¥®¡à §®¢ ë ¢ ¨¤¥â¨ä¨ª â®àë Perl ¯à¨å®¤¨âáï ¨á¯®«ì§®¢ âì ¬¥â®¤ get()). <span style="font-style:italic">‹¨á⨣ 6</span> ᮤ¥à¦¨â ª®ä¨£ãà æ¨®ë© ä ©«.<br /><br /><span style="font-style:italic">‹¨á⨣ 5: ˆá¯®«ì§®¢ ¨¥ ConfigReader::Simple.</span><br /><div class="code"><pre>1 #!/usr/bin/perl -w
|
||
2 use strict;
|
||
3
|
||
4 use ConfigReader::Simple;
|
||
5 use LWP::Simple;
|
||
6 use Text::Template qw(fill_in_file);
|
||
7 use XML::RSS;
|
||
8
|
||
9 my $config = ConfigReader::Simple-&gt;new( './rss.config' );
|
||
10
|
||
11 my $base = $config-&gt;base;
|
||
12 my $template = $config-&gt;template;
|
||
13 my $extension = $config-&gt;extension;
|
||
14
|
||
15 my @files = split /\s+/, $config-&gt;files;
|
||
16
|
||
17 foreach my $url ( @files )
|
||
18 {
|
||
19 my $file = $url;
|
||
20
|
||
21 $file =~ s|.*/||;
|
||
22
|
||
23 my $result = open my $fh, &quot;&gt; $base/$file.$extension&quot;;
|
||
24
|
||
25 unless( $result )
|
||
26 {
|
||
27 warn &quot;Could not open [$file] for writing! $!&quot;;
|
||
28 next;
|
||
29 }
|
||
30
|
||
31 my $rss = XML::RSS-&gt;new();
|
||
32 my $data = get( $url );
|
||
33 $rss-&gt;parse( $data );
|
||
34
|
||
35 print $fh fill_in_file( $template, HASH =&gt; $rss );
|
||
36 close $fh;
|
||
37 }</pre></div><br /><span style="font-style:italic">‹¨á⨣ 6: ” ©« ª®ä¨£ãà æ¨¨.</span><br /><div class="code"><pre>1 base .
|
||
2 template rss-html.tmpl
|
||
3 files http://use.perl.org/useperl.rss
|
||
4 extension html</pre></div><br /><br /><span style="font-weight:bold">4. ‡ ª«î票¥.</span><br /><br />Ÿ ¬®£ã 㬥ìè¨âì à §¬¥à ¬®¨å ¯à®£à ¬¬, ®â¤¥«ïï ª®¤ ®â «®£¨ª¨ ¯à¥¤áâ ¢«¥¨ï ¨ ª®ä¨£ãà æ¨®®© ¨ä®à¬ 樨. �â® à §¤¥«¥¨¥ ¤¥« ¥â ¯à®£à ¬¬ã ¡®«¥¥ £¨¡ª®© ¨ ¯à®á⮩ ¢ ¤ ¯â 樨 ª ®¢ë¬ ®ªà㦥¨ï¬. ˜ ¡«®ë ¯®§¢®«ïîâ ¨§¬¥ïâì ¢ë¢®¤, ª®ä¨£ãà æ¨®ë¥ ä ©«ë ã¯à ¢«ïâì à ¡®â®© ¯à®£à ¬¬ë ¡¥§ ¨§¬¥¥¨ï ª®¤ . Text::Template ¨ ConfigReader::Simple ¤¥« îâ íâ® á⮫쪮 ¯à®áâë¬, ᪮«ìª® ¢®§¬®¦®.<br /><br /><span style="font-weight:bold">5. ‘á뫪¨</span><br /><br />‚ᥠ¬®¤ã«¨, 㯮¬¨ ¥¬ë¥ ¢ í⮩ áâ âì¥, ¬®¦® ©â¨ Comprehensive Perl Archive Network (CPAN) - <a target="_blank" href="http://search.cpan.org">http://search.cpan.org</a><br /><br /><span style="font-weight:bold">6. Ž¡ ¢â®à¥.</span><br /><br />�à © ¤¥ ”®© (brian d foy) - ¨§¤ ⥫ì <span style="font-style:italic">The Perl Review</span>.<br /><br /><span style="font-weight:bold">�ਬ¥ç ¨ï.</span><br /><br /><span style="font-weight:bold"><sup>1</sup></span> &quot;Simple RSS with Perl&quot; by brian d foy, The Perl Review v0 i5, November 2002, <a target="_blank" href="http://www.theperlreview.com">http://www.ThePerlReview.com</a><br /><br /><span style="font-weight:bold"><sup>2</sup></span> <a target="_blank" href="http://search.cpan.org">http://search.cpan.org</a><br /><br /><a target="_blank" href="http://www.theperlreview.com/Articles/v0i7/config.pdf">®à¨£¨ « áâ âì¨ Perl Review (PDF)</a>
|
||
</description>
|
||
<author>‹®¡ ®¢ ˆ£®àì <authors@template-toolkit.ru></author>
|
||
<comments>http://forum.template-toolkit.ru/view_topic/topic_id-53.html</comments>
|
||
<category>„à㣨¥ ⥬ë, á¢ï§ ë¥ á è ¡«® ¬¨ ¨ Perl</category>
|
||
<source url="http://forum.template-toolkit.ru/rss/forum_id-8.rss">http://forum.template-toolkit.ru/view_topic/topic_id-53.html?rss</source>
|
||
</item>
|
||
</channel>
|
||
</rss>
|