← Index
NYTProf Performance Profile   « line view »
For /usr/local/libexec/sympa/task_manager-debug.pl
  Run on Tue Jun 1 22:32:51 2021
Reported on Tue Jun 1 22:35:06 2021

Filename/usr/local/lib/perl5/site_perl/DateTime/Locale/Util.pm
StatementsExecuted 0 statements in 0s
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
0000s0sDateTime::Locale::Util::::BEGIN@3DateTime::Locale::Util::BEGIN@3
0000s0sDateTime::Locale::Util::::BEGIN@4DateTime::Locale::Util::BEGIN@4
0000s0sDateTime::Locale::Util::::BEGIN@5DateTime::Locale::Util::BEGIN@5
0000s0sDateTime::Locale::Util::::BEGIN@7DateTime::Locale::Util::BEGIN@7
0000s0sDateTime::Locale::Util::::_tcDateTime::Locale::Util::_tc
0000s0sDateTime::Locale::Util::::parse_locale_codeDateTime::Locale::Util::parse_locale_code
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package DateTime::Locale::Util;
2
3use strict;
4use warnings;
5use namespace::autoclean 0.19 -except => ['import'];
6
7use Exporter qw( import );
8
9our $VERSION = '1.32';
10
11our @EXPORT_OK = 'parse_locale_code';
12
13sub parse_locale_code {
14 my @pieces = split /-/, $_[0];
15
16 return unless @pieces;
17
18 my %codes = ( language => lc shift @pieces );
19 if ( @pieces == 1 ) {
20 if ( length $pieces[0] == 2 || $pieces[0] =~ /^\d\d\d$/ ) {
21 $codes{territory} = uc shift @pieces;
22 }
23 else {
24 $codes{script} = _tc( shift @pieces );
25 }
26 }
27 elsif ( @pieces == 3 ) {
28 $codes{script} = _tc( shift @pieces );
29 $codes{territory} = uc shift @pieces;
30 $codes{variant} = uc shift @pieces;
31 }
32 elsif ( @pieces == 2 ) {
33
34 # I don't think it's possible to have a script + variant without also
35 # having a territory.
36 if ( length $pieces[1] == 2 || $pieces[1] =~ /^\d\d\d$/ ) {
37 $codes{script} = _tc( shift @pieces );
38 $codes{territory} = uc shift @pieces;
39 }
40 else {
41 $codes{territory} = uc shift @pieces;
42 $codes{variant} = uc shift @pieces;
43 }
44 }
45
46 return %codes;
47}
48
49sub _tc {
50 return ucfirst lc $_[0];
51}
52
531;
54
55# ABSTRACT: Utility code for DateTime::Locale
56
57__END__