Leser: 24
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
Algorithm::C3 (0.07)
Algorithm::Diff (1.1902)
AppConfig (1.66)
Archive::Tar (1.38)
Archive::Zip (1.13)
Array::Compare (33)
Authen::SASL (2.13)
B::Hooks::EndOfScope (0.08)
Bit::Vector (6.4)
Carp::Clan (6.00)
CGI (3.48)
CGI::IDS (1.0116)
Class::Accessor (0.34)
Class::C3 (0.21)
Class::Data::Inheritable (0.08)
Class::MOP (0.83)
Class::Singleton (1.03)
Class::Std (0.0.9)
Class::Std::Fast (0.0.8)
Class::Trigger (0.13)
Compress::Zlib (1.33)
Config::General (2.27)
Crypt::SSLeay (0.57)
Data::OptList (0.104)
Date::Calc (5.4)
DateTime (0.37)
DateTime::Format::Mail (0.30)
DateTime::Format::W3CDTF (0.04)
DateTime::Locale (0.34)
DateTime::TimeZone (0.6602)
DBD::mysql (4.010)
DBI (1.607)
Devel::GlobalDestruction (0.02)
Devel::StackTrace (1.20)
Digest (1.16)
Digest::CRC (0.14)
Digest::HMAC (1.01)
Digest::MD2 (2.03)
Digest::MD5 (2.39)
Digest::SHA (5.47)
Digest::SHA1 (2.10)
Email::Date::Format (1.002)
Email::Valid (0.180)
Encode (2.35)
Encode::Detect (1.01)
Error (0.17014)
Exception::Class (1.29)
ExtUtils::CBuilder (0.23)
ExtUtils::MakeMaker (6.50)
FCGI (0.67)
File::Path (2.07)
Graphics::ColorNames (2.11)
Graphics::Magick (1.3.2)
HTML::Parser (3.56)
HTML::Tidy (1.08)
HTTP::DetectUserAgent (0.01)
Image::ExifTool (7.51)
Image::Magick (5.5.7)
IO::Zlib (1.04)
IP::Country (2.24)
JSON::XS (2.24)
List::MoreUtils (0.22)
List::Util (1.19)
LWP (5.813)
Mail::POP3Client (2.17 )
Mail::SpamAssassin (3.002004)
Mail::SPF (v2.005)
Mail::SPF::Query (1.999.1)
Math::Combinatorics (0.09)
MIME::Base64 (3.08)
MIME::Lite (3.027)
MIME::Types (1.28)
mod_perl (1.29)
mod_perl2 (2.000003)
Module::Build (0.2808)
Module::Find (0.06)
Module::Load (0.16)
Module::Loaded (0.06)
Moose (0.77)
MooseX::AttributeHelpers (0.17)
MooseX::ClassAttribute (0.08)
MooseX::Types (0.10)
MooseX::Types::Path::Class (0.05)
MooseX::Types::URI (0.01)
MRO::Compat (0.10)
namespace::clean (0.11)
Net::CIDR::Lite (0.20)
Net::DNS (0.65)
Net::DNS::Resolver::Programmable (v0.003)
Net::Domain::TLD (1.68)
Net::IP (1.25)
NetAddr::IP ( 4.007)
Number::Format (1.60)
OLE::Storage_Lite (0.18)
Params::Util (0.38)
Params::Validate (0.88)
Parse::HTTP::UserAgent (0.20)
Path::Class (0.16)
PDF::API2 (2.015)
PDF::Create (1.03)
PDF::FromHTML (0.31)
PDF::Table (0.9.3)
PDF::Writer (0.06)
Perl (5.8.5)
Pod::Coverage (0.19)
Pod::Escapes (1.04)
Pod::Simple (3.13)
Roman (undef)
Scope::Guard (0.03)
Search::Sitemap (2.07)
SOAP::Lite (0.710.08)
SOAP::WSDL (2.00.10)
Spiffy (0.30)
Spreadsheet::ParseExcel (0.55)
String::Random (0.20)
Sub::Exporter (0.982)
Sub::Install (0.925)
Sub::Name (0.04)
Sub::Uplevel (0.2002)
Sys::Hostname::Long (1.4)
Task::Weaken (1.02)
Template (2.20)
Term::ReadKey (2.30)
Test::Base (0.59)
Test::Deep (0.104)
Test::Differences (0.4801)
Test::Exception (0.27)
Test::Harness (3.17)
Test::Manifest (1.23)
Test::Mock::LWP (0.05)
Test::MockObject (1.09)
Test::Most (0.21)
Test::NoWarnings (0.084)
Test::Output (0.13)
Test::Pod (1.40)
Test::Simple (0.86)
Test::Tester (0.107)
Test::use::ok (0.02)
Test::Warn (0.11)
Text::Diff (0.35)
Text::Iconv (1.7)
Time::Local (1.1901)
Tree::DAG_Node (1.06)
UNIVERSAL::can (1.12)
URI (1.37)
URI::FromHash (0.03)
Variable::Magic (0.34)
version (0.74)
WeakRef (0.01)
WWW::Mechanize (1.12)
XML::LibXML (1.69)
XML::LibXML::Common (0.13)
XML::NamespaceSupport (1.08)
XML::Parser (2.36)
XML::RSS (1.46)
XML::SAX (0.96)
XML::Simple (2.18)
XML::Twig (3.32)
XML::XPath (1.13)
YAML (0.70)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
ppm> s GDGraph
Searching in Active Repositories
1. Apache-GDGraph [0.96] Apache handler to generate graphs.
2. CGI-Application-GDGraph-lines_ap [0.01] Perl extension for CGI::Application, using GDGraph and CGI::Session
3. GDGraph [1.44] Produces charts with GD
4. GDGraph [1.44] Produces charts with GD
5. GDGraph-boxplot [1.00] Produces PNG box and whisker graphs
6. GDGraph-Map [1.05] GDGraph-Map
7. GDGraph-Map [1.05] generate HTML map text for GD::Graph diagramms.
8. GDGraph-XY [0.92] XY Graphs for GD::Graph
9. Kwiki-GDGraphGenerator [0.04] put pretty graphs into your Kwiki pages
ppm> i 3
Package 3:
Error: no suitable implementation found for 'G'.
ppm> install 3
Package 3:
Error: no suitable implementation found for 'G'.
ppm> install 4
Package 4:
Error: no suitable implementation found for 'G'.
1
2
3
4
D:\Arbeit\perltest>perl -v
This is perl, v5.8.7 built for MSWin32-x86-multi-thread
(with 7 registered patches, see perl -V for more detail)
Quote//EDIT: Du verwendest doch auch das Repo von Randy Kobes (uwinnipeg). Oder nicht?
Ansonsten hilft in ppm-shell ein beherztes repo suggest, um herauszufinden wie Randy Kobes repo hinzugefüpgt wird.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ppm> rep
Repositories:
[1] trouchelle
[2] jenda
[3] bribes.org
[4] theoryx5
[5] ActiveState Package Repository
[6] ActiveState PPM2 Repository
ppm>
ppm> repo suggest
No such repository command 'suggest'; see 'help repository'.
ppm> rep describe 4
Describing Active Repository 4:
Name: theoryx5
Location: http://theoryx5.uwinnipeg.ca/cgi-bin/ppmserver?urn:/PPMServer58
Type: PPMServer 2.0
Quote(in diesem Fall ist es 5.8.9 Build 826)Binary build 826 [290470] provided by ActiveState http://www.activestate.com/
Built May 24 2009 09:21:05
2010-02-07T13:40:02 GwenDragon1) Welche Perl-Build verwendest du?
1
2
3
4
Summary of my perl5 (revision 5 version 8 subversion 7) configuration:
(…)
Locally applied patches:
ActivePerl Build 813 [148120]
2010-02-07T13:40:02 GwenDragon2) Verwendest du etwa die Shell von ppm2? Welche Version von PPM ist es denn?
2010-02-07T14:15:47 GwenDragonOh, das ist ja älter als gedacht.
2010-02-07T14:15:47 GwenDragonVersuch doch mal von die GDGraph.zip per HAnd zu holen, entpacke sie in ein Verzeichnis, wechsele dahin und gebe ppm install GDGRaph.ppd ein.
Was passiert dann?
1
2
3
4
5
6
7
D:\Arbeit\gdgraph>dir
05.09.2006 18:49 963 GDGraph.ppd
05.09.2006 18:48 107.849 GDGraph.tar.gz
05.09.2006 18:49 115 README
[dir gekürzt]
D:\Arbeit\gdgraph>ppm install GDGraph.ppd
Error: no suitable implementation found for 'G'.
2010-02-07T14:56:27 GwenDragonFür alte Perl-Releases bekommst per PPM du keine Packages mehr. Und es erstellt dir auch niemand mehr solche.
Es ist ja deine Entscheidung als Programmierende, dass du veraltete Versionen verwendest.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
#!/usr/bion/perl; use strict; use warnings; {package tortengrafik; use Graphics::Magick; use Math::Trig; sub new { my $class=shift; $class=ref($class) if(ref($class)); my $self={values=>[]}; bless($self,$class); } # füge ein Element hinzu # params: # - Wert Zahlenwert des feldes (muss ein zahl >0 sein) # - Farbe Farbe des Feldes (weiß ist default) # - Text Title/Text des Feldes sub add { my $self=shift; my $value=shift || 0; $value+=0; return 0 unless($value); my $color=shift || '#FFFFFF'; my $title=shift || ''; push(@{$self->{values}},{val=>$value,title=>$title,color=>$color}); $self->{sum}=undef; return 1; } # erzeuge die Grafik # params: # - größe des Diagrammes (radius des Diagramms) # - Abstand zum Rand (wird aufaddiert) # - Textgröße (12 pixes ist default) # - Hintergrundfarbe (Weiß ist default) # - Linenfarbe (Schwarz ist default) sub create { my $self=shift; my $size=shift || 100; my $border=shift || 4; my $text_size=shift || 12; my $bg_color=shift || 'white'; my $line_color=shift || 'black'; # Create Image my $img=Graphics::Magick->new(); $img->Set(size=>($size*2+$border*2)."x".($size*2+$border*2)); $img->Read('xc:'.$bg_color); # get summ unless($self->{sum}) { $self->{sum}=0; for my $val (@{$self->{values}}) { $self->{sum}+=$val->{val}; } } # Draw Felder my $ancle=0; my $center=$size+$border; for my $val (@{$self->{values}}) { my $a=(360/$self->{sum})*$val->{val}; my $new_ancle=$ancle+$a; $img->Draw(primitive=>'ellipse', points=>$center.','.$center.' '.($size/2).','.($size/2).' '.$ancle.','.$new_ancle, fill=>$val->{color}, stroke=>$val->{color}, strokewidth=>$size); $ancle=$new_ancle; } # Draw seperators $ancle=0; for my $val (@{$self->{values}}) { my $a=((pi*2)/$self->{sum})*$val->{val}; my $new_ancle=$ancle+$a; my $px=(cos($new_ancle)*$size)+$center; my $py=(sin($new_ancle)*$size)+$center; $img->Draw(primitive=>'line', points=>"$center,$center $px,$py", stroke=>$line_color, strokewidth=>2); $ancle=$new_ancle; } $img->Draw(primitive=>'ellipse', points=>$center.','.$center.' '.$size.','.$size.' 0,360', stroke=>$line_color, strokewidth=>2); # Draw text; $ancle=0; for my $val (@{$self->{values}}) { my $a=((pi*2)/$self->{sum})*$val->{val}; my $new_ancle=$ancle+$a; my $px=(cos($ancle+$a/2)*$size/2)+$center; my $py=(sin($ancle+$a/2)*$size/2)+$center; my $text=int((100/$self->{sum})*$val->{val}).'%% '.$val->{title}; $img->Draw(primitive=>'text', points=>"$px,$py '$text'", fill=>$line_color, pointsize=>$text_size, strokewidth=>1); $ancle=$new_ancle; } return $img; } 1;} package main; my $g=tortengrafik->new(); $g->add(10,'#FF0000','Test1'); $g->add(20,'#00FF00','Test2'); $g->add(40,'#0000FF','Test3'); $g->add(30,'#FFF000','Test4'); $g->add(20,'#00FFF0','Test5'); $g->add(10,'#000FFF','Test6'); $g->add(40,'#FF00F0','Test7'); $g->add(30,'#F0FF00','Test8'); $g->add(10,'#00F0FF','Test9'); $g->create(300,5,30,'#FFFFFF')->display();