#!/usr/bin/perl package webapp::item use webapp qw(role method); use base 'webapp'; # everybody sees it sub show :StartRunMode { ... } # Authenticated users only sub post_comment :RunMode :Protected { ... } # Authenticated & authorized - only admin or moderator # could delete items sub delete :RunMode :Protected(role('admin'), role('moderator')) { ... } # Only authenticated and throught POST http method sub save :RunMode :Protected(method('POST')) { ... } #### sub cgiapp_dispatch { my $self = shift; my $mode = $self->parse_path_info(); return $self->cgiapp_protect ($mode) if $self->can('cgiapp_protect'); return $mode; }