#!/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')) { ... }