# # - Scalar-List-Utils - # This spec file was automatically generated by cpan2rpm [ver: 2.028] # The following arguments were used: # --keep-pipes Scalar::List::Utils 2>&1 # For more information on cpan2rpm please visit: http://perl.arix.com/ # %define pkgname Scalar-List-Utils %define filelist %{pkgname}-%{version}-filelist %define NVR %{pkgname}-%{version}-%{release} %define maketest 1 name: perl-Scalar-List-Utils summary: Scalar-List-Utils - Common Scalar and List utility subroutines version: 1.23_03 release: 1 vendor: Graham Barr packager: Arix International license: Artistic group: Applications/CPAN url: http://www.cpan.org buildroot: %{_tmppath}/%{name}-%{version}-%(id -u -n) buildarch: i386 prefix: %(echo %{_prefix}) source: Scalar-List-Utils-1.23_03.tar.gz %description `List::Util' contains a selection of subroutines that people have expressed would be nice to have in the perl core, but the usage would not really be high enough to warrant the use of a keyword, and the size so small such that being individual extensions would be wasteful. By default `List::Util' does not export any subroutines. The subroutines defined are =over 4 =item first BLOCK LIST Similar to `grep' in that it evaluates BLOCK setting `$_' to each element of LIST in turn. `first' returns the first element where the result from BLOCK is a true value. If BLOCK never returns true or LIST was empty then `undef' is returned. $foo = first { defined($_) } @list # first defined value in @list $foo = first { $_ > $value } @list # first value in @list which # is greater than $value This function could be implemented using `reduce' like this $foo = reduce { defined($a) ? $a : wanted($b) ? $b : undef } undef, @list for example wanted() could be defined() which would return the first defined value in @list =item max LIST Returns the entry in the list with the highest numerical value. If the list is empty then `undef' is returned. $foo = max 1..10 # 10 $foo = max 3,9,12 # 12 $foo = max @bar, @baz # whatever This function could be implemented using `reduce' like this $foo = reduce { $a > $b ? $a : $b } 1..10 =item maxstr LIST Similar to `max', but treats all the entries in the list as strings and returns the highest string as defined by the `gt' operator. If the list is empty then `undef' is returned. $foo = maxstr 'A'..'Z' # 'Z' $foo = maxstr "hello","world" # "world" $foo = maxstr @bar, @baz # whatever This function could be implemented using `reduce' like this $foo = reduce { $a gt $b ? $a : $b } 'A'..'Z' =item min LIST Similar to `max' but returns the entry in the list with the lowest numerical value. If the list is empty then `undef' is returned. $foo = min 1..10 # 1 $foo = min 3,9,12 # 3 $foo = min @bar, @baz # whatever This function could be implemented using `reduce' like this $foo = reduce { $a < $b ? $a : $b } 1..10 =item minstr LIST Similar to `min', but treats all the entries in the list as strings and returns the lowest string as defined by the `lt' operator. If the list is empty then `undef' is returned. $foo = minstr 'A'..'Z' # 'A' $foo = minstr "hello","world" # "hello" $foo = minstr @bar, @baz # whatever This function could be implemented using `reduce' like this $foo = reduce { $a lt $b ? $a : $b } 'A'..'Z' =item reduce BLOCK LIST Reduces LIST by calling BLOCK, in a scalar context, multiple times, setting `$a' and `$b' each time. The first call will be with `$a' and `$b' set to the first two elements of the list, subsequent calls will be done by setting `$a' to the result of the previous call and `$b' to the next element in the list. Returns the result of the last call to BLOCK. If LIST is empty then `undef' is returned. If LIST only contains one element then that element is returned and BLOCK is not executed. $foo = reduce { $a < $b ? $a : $b } 1..10 # min $foo = reduce { $a lt $b ? $a : $b } 'aa'..'zz' # minstr $foo = reduce { $a + $b } 1 .. 10 # sum $foo = reduce { $a . $b } @bar # concat If your algorithm requires that `reduce' produce an identity value, then make sure that you always pass that identity value as the first argument to prevent `undef' being returned $foo = reduce { $a + $b } 0, @values; # sum with 0 identity value =item shuffle LIST Returns the elements of LIST in a random order @cards = shuffle 0..51 # 0..51 in a random order =item sum LIST Returns the sum of all the elements in LIST. If LIST is empty then `undef' is returned. $foo = sum 1..10 # 55 $foo = sum 3,9,12 # 24 $foo = sum @bar, @baz # whatever This function could be implemented using `reduce' like this $foo = reduce { $a + $b } 1..10 If your algorithm requires that `sum' produce an identity of 0, then make sure that you always pass `0' as the first argument to prevent `undef' being returned $foo = sum 0, @values; =back # # This package was generated automatically with the cpan2rpm # utility. To get this software or for more information # please visit: http://perl.arix.com/ # %prep %setup -q -n %{pkgname}-%{version} chmod -R u+w %{_builddir}/%{pkgname}-%{version} %build grep -rsl '^#!.*perl' . | grep -v '.bak$' |xargs --no-run-if-empty \ %__perl -MExtUtils::MakeMaker -e 'MY->fixin(@ARGV)' CFLAGS="$RPM_OPT_FLAGS" %{__perl} Makefile.PL `%{__perl} -MExtUtils::MakeMaker -e ' print qq|PREFIX=%{buildroot}%{_prefix}| if \$ExtUtils::MakeMaker::VERSION =~ /5\.9[1-6]|6\.0[0-5]/ '` %{__make} %if %maketest %{__make} test %endif %install [ "%{buildroot}" != "/" ] && rm -rf %{buildroot} %{makeinstall} `%{__perl} -MExtUtils::MakeMaker -e ' print \$ExtUtils::MakeMaker::VERSION <= 6.05 ? qq|PREFIX=%{buildroot}%{_prefix}| : qq|DESTDIR=%{buildroot}| '` cmd=/usr/share/spec-helper/compress_files [ -x $cmd ] || cmd=/usr/lib/rpm/brp-compress [ -x $cmd ] && $cmd # SuSE Linux if [ -e /etc/SuSE-release -o -e /etc/UnitedLinux-release ] then %{__mkdir_p} %{buildroot}/var/adm/perl-modules %{__cat} `find %{buildroot} -name "perllocal.pod"` \ | %{__sed} -e s+%{buildroot}++g \ > %{buildroot}/var/adm/perl-modules/%{name} fi # remove special files find %{buildroot} -name "perllocal.pod" \ -o -name ".packlist" \ -o -name "*.bs" \ |xargs -i rm -f {} # no empty directories find %{buildroot}%{_prefix} \ -type d -depth \ -exec rmdir {} \; 2>/dev/null %{__perl} -MFile::Find -le ' find({ wanted => \&wanted, no_chdir => 1}, "%{buildroot}"); print "%doc Changes README"; for my $x (sort @dirs, @files) { push @ret, $x unless indirs($x); } print join "\n", sort @ret; sub wanted { return if /auto$/; local $_ = $File::Find::name; my $f = $_; s|^\Q%{buildroot}\E||; return unless length; return $files[@files] = $_ if -f $f; $d = $_; /\Q$d\E/ && return for reverse sort @INC; $d =~ /\Q$_\E/ && return for qw|/etc %_prefix/man %_prefix/bin %_prefix/share|; $dirs[@dirs] = $_; } sub indirs { my $x = shift; $x =~ /^\Q$_\E\// && $x ne $_ && return 1 for @dirs; } ' > %filelist [ -z %filelist ] && { echo "ERROR: empty %files listing" exit -1 } %clean [ "%{buildroot}" != "/" ] && rm -rf %{buildroot} %files -f %filelist %defattr(-,root,root) %changelog * Wed Sep 21 2011 rpm@janus.arix.com - Initial build.