Moduł CGI::Pretty

Uniwersytet Gdański - Instytut Matematyki - Zakład Informatyki - Strona domowa

Spis treści

  1. Co to jest
  2. Po co to jest?
  3. Przykład
  4. Tagi nieformatowane
  5. Dostosowywanie wcięć
  6. Dodatkowe informacje

Co to jest

Moduł CGI::Pretty pozwala wyprodukować ładnie sformatowany kod HTML.

Po co to jest?

Moduł ten wywodzi się od modułu CGI. Jednak, gdy używamy modułu CGI, następujący kod:

print table( TR( td( "foo" ) ) );

wyprodukowałby: <TABLE><TR><TD>foo</TD></TR></TABLE>.

I teraz gdyby ta tabelka miała mieć wiele kolumn i wiele wierszy, wyprodukowany kod byłby dość trudny do czytania, gdyż nie ma ani powrotu karetki, ani wcięć. No i tutaj właśnie wkracza do akcji moduł CGI:Pretty, który jak sama nazwa wskazuje produkuje kod ładny i przyjazny do odczytu. Czyli dodaje własnie wcięcia i powrót karetki.

Przykład

Oto specjalnie stworzyłam ciut większą tabelkę, żeby zademonstrować różnicę w wynikach.

Tak wygląda kod, gdy korzystamy z modułu CGI

#!/usr/bin/perl use CGI qw( :html3); # Print a table with a single data element print table( TR( td( "foo" ), td( "boo" ), td( "zoo" ) ), TR( td( "bar" ), td( "car" ), td( "star" ) ), TR( td( "fiku" ), td( "miku" ), td( "bez liku" ) ), TR( td( "lelum" ), td( "polelum" ), td( "serum" ) ), TR( td( "jacie" ), td( "macie" ), td( "gacie" ) ), TR( td( "hokus" ), td( "pokus" ), td( "krokus" ) ), TR( td( "dach" ), td( "bach" ), td( "trach" ) ), TR( td( "pretty" ), td( "witty" ), td( "kitty" ) ), TR( td( "itd" ), td( "itp" ), td( "etc" ) ) );

I tak wygląda rezultat:


Teraz gdy zamienimy linijkę use CGI qw( :html3); na use CGI::Pretty qw( :html3 ); rezultat będzie taki:


No i co jest różnica prawda? :)

Tagi nieformatowane

Tagi <A> oraz <PRE> nie są formatowane, gdyż użytkownik by widział dodatkowe wcięcia w przeglądarce, powodując, że wygląd strony byłby inny niż spodziewany. Jeżeli natomiast chcemy dodać więcej tagów do listy tagów, które mają pozostać nietknięte, należy je dodać przy pomocy push do tablicy @AS_IS, np:

push @CGI::Pretty::AS_IS,qw(CODE XMP);

Dostosowywanie wcięć

Jeżeli chcemy mieć własny styl wcięć, można je zmienić przy użyciu zmiennej $INDENT. Przykładowo, takie przypisanie:

$CGI::Pretty::INDENT = "\t\t"; spowoduje, że wcięcie będzie równoważnością dwóch tabulatorów.

Podobnie jeśli chcemy mieć więcej miejsca pomiędzy liniami, można ustawić zmienną $LINEBREAK. Przykładowo, gdy ustawimy:

$CGI::Pretty::LINEBREAK = "\n\n";

spowoduje to ustawienie dwóch powrotów karetki pomiędzy liniami.

Jeśli jednak uznamy, że chcemy użyć typowego ustawienia wcięć CGI, wystarczy zrobić tak:

$CGI::Pretty::INDENT = $CGI::Pretty::LINEBREAK = "";

Dodatkowe informacje

A oto oryginalna dokumentacja: http://search.cpan.org/dist/CGI.pm/CGI/Pretty.pm, lub jeśli mamy zainstalowanego perldoca można wyświetlić dokumentację przy pomocy polecenia perldoc CGI::Pretty

Polecam też zapoznać się z modułem CGI: http://search.cpan.org/~lds/CGI.pm-3.29/CGI.pm

Autorka opracowania

P.P.

Uniwersytet Gdański - Instytut Informatyki - Strona domowa - Perl - Wyklady
[c] Piotr Arłukowicz, materiały z tej strony udostępnione są na licencji GNU.