Clay-UI
view release on metacpan or search on metacpan
MANIFEST.SKIP view on Meta::CPAN
\bBuild$
\b_build/
\bBuild.bat$
\bBuild.COM$
\bBUILD.COM$
\bbuild.com$
# and Module::Build::Tiny generated files
\b_build_params$
# Avoid temp and backup files.
~$
\.old$
\#$
\b\.#
\.bak$
\.tmp$
\.#
\.rej$
\..*\.sw.?$
examples/16-invoice-pdf.pl view on Meta::CPAN
# Deterministic line items for the service period, September 2026
# (calendar weeks 36 to 40). Monthly services come first, billed once
# for the month; the other services are billed per week. Within a week
# the services rotate, a week has at most one item of each daily service,
# and every hourly item names its own ticket, so no week lists the same
# item twice. Some items carry a long detail text
# that wraps over several lines.
sub generate_items ($count) {
my @monthly_services = (
[ 'Managed database', 24_900, 'PostgreSQL cluster with daily backups, point-in-time recovery and around-the-clock monitoring.' ],
[ 'Support retainer', 45_000, undef ],
);
my @weekly_services = (
[ 'Backend development', 'hours', 9_500, 'API endpoints for the order import, including validation of partner payloads and retry handling for failed deliveries.' ],
[ 'Frontend development', 'hours', 8_800, undef ],
[ 'Code review', 'hours', 7_500, 'Review of pull requests for the reporting module.' ],
[ 'Project management', 'hours', 7_000, undef ],
[ 'UX workshop', 'days', 120_000, 'Remote workshop with stakeholders, including preparation, moderation and a written summary of all decisions taken.' ],
[ 'Security audit', 'days', 135_000, 'Dependency audit and penetration test of the customer portal; findings delivered as a prioritised report.' ],
);
( run in 1.298 second using v1.01-cache-2.11-cpan-3f962061493 )