diff options
Diffstat (limited to 'lib/Fripost/Schema/Misc.pm')
-rw-r--r-- | lib/Fripost/Schema/Misc.pm | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/lib/Fripost/Schema/Misc.pm b/lib/Fripost/Schema/Misc.pm index 114e01b..9ae8cdc 100644 --- a/lib/Fripost/Schema/Misc.pm +++ b/lib/Fripost/Schema/Misc.pm @@ -13,7 +13,8 @@ use utf8; use Exporter 'import'; our @EXPORT_OK = qw /concat get_perms explode - must_attrs email_valid/; + must_attrs email_valid + split_addr/; use Email::Valid; use Net::IDN::Encode; use Encode; @@ -115,6 +116,25 @@ sub email_valid { return $addr; } +sub split_addr { + my $addr = shift; + my %options = @_; + + if (defined $options{'-encoding'}) { + if ($options{'-encoding'} eq 'ascii') { + $addr = Net::IDN::Encode::email_to_ascii($addr); + } + elsif ($options{'-encoding'} eq 'unicode') { + $addr = Net::IDN::Encode::email_to_unicode($addr); + } + else { + die "Unknown encoding: ". $options{'-encoding'}; + } + } + + split /\@/, $addr, 2; +} + =head1 AUTHOR @@ -122,7 +142,7 @@ Guilhem Moulin C<< <guilhem at fripost.org> >> =head1 COPYRIGHT -Copyright 2012 Guilhem Moulin. +Copyright 2012,2013 Guilhem Moulin. =head1 LICENSE |