default.pl

来自「PERL语言资料 可以用于PERL程序设计」· PL 代码 · 共 63 行

PL
63
字号
#!perl
# Fig. 22.33: default.pl
# Default page for XML forums

use warnings;
use strict;
use CGI qw( :standard );
use XML::Parser;
use Fcntl qw( :flock );

my ( $parser, @files, @forums, @items );

open( XML, "+<../htdocs/XML/forums.xml" ) or 
   die( "Could not open: $!" );
flock( XML, LOCK_SH );
$parser = new XML::Parser( Handlers => { Start => \&startTag,
    Char  => \&text      } );
$parser->parse( \*XML );
close( XML );

print( header, start_html( -title => "Deitel Message Forums", 
   -style => { -src => "/XML/site.css" } ) );

print( h1( "Deitel Message Forums" ) );

@items = map { a( { -href => "/XML/$files[ $_ ]" }, 
   $forums[ $_ ] ) } ( 0 .. $#files );

print( p( strong( "Available Forums" ), 
   ul( li( \@items ) ) ) );

@items = ( a( { -href => "addforum.pl" }, "Add a Forum" ),
           "Delete a Forum", "Modify a Forum" );

print( p( strong( "Forum Management" ), ul( li( \@items ) ) ),
      end_html );

sub startTag
{
   my ( $expat, $element, %attributes ) = @_;
   push( @files, $attributes{ "filename" } ) if $element eq "forum";
}

sub text
{
   my ( $expat, $string ) = @_;
   push( @forums, $string ) if $expat->in_element( "name" );
}

 ########################################################################## 
 # (C) Copyright 2001 by Deitel & Associates, Inc. and Prentice Hall.     #
 # All Rights Reserved.                                                   #
 #                                                                        #
 # DISCLAIMER: The authors and publisher of this book have used their     #
 # best efforts in preparing the book. These efforts include the          #
 # development, research, and testing of the theories and programs        #
 # to determine their effectiveness. The authors and publisher make       #
 # no warranty of any kind, expressed or implied, with regard to these    #
 # programs or to the documentation contained in these books. The authors #
 # and publisher shall not be liable in any event for incidental or       #
 # consequential damages in connection with, or arising out of, the       #
 # furnishing, performance, or use of these programs.                     #
 ##########################################################################

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?