-
−162
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 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
С'шная либа: http://fossies.org/dox/imlib2-1.4.5/image_8c_source.html
смотрим код сохраняющий картинку:
1241 __imlib_SaveImage(ImlibImage * im, const char *file,
1242 ImlibProgressFunction progress, char progress_granularity,
1243 ImlibLoadError * er)
..........................................
..........................................
1290 *er = IMLIB_LOAD_ERROR_UNKNOWN;
1291 if (errno == EEXIST)
1292 *er = IMLIB_LOAD_ERROR_FILE_DOES_NOT_EXIST;
1293 else if (errno == EISDIR)
1294 *er = IMLIB_LOAD_ERROR_FILE_IS_DIRECTORY;
1295 else if (errno == EISDIR)
1296 *er = IMLIB_LOAD_ERROR_FILE_IS_DIRECTORY;
1297 else if (errno == EACCES)
1298 *er = IMLIB_LOAD_ERROR_PERMISSION_DENIED_TO_WRITE;
1299 else if (errno == ENAMETOOLONG)
1300 *er = IMLIB_LOAD_ERROR_PATH_TOO_LONG;
1301 else if (errno == ENOENT)
1302 *er = IMLIB_LOAD_ERROR_PATH_COMPONENT_NON_EXISTANT;
1303 else if (errno == ENOTDIR)
1304 *er = IMLIB_LOAD_ERROR_PATH_COMPONENT_NOT_DIRECTORY;
1305 else if (errno == EFAULT)
1306 *er = IMLIB_LOAD_ERROR_PATH_POINTS_OUTSIDE_ADDRESS_SPACE;
1307 else if (errno == ELOOP)
1308 *er = IMLIB_LOAD_ERROR_TOO_MANY_SYMBOLIC_LINKS;
1309 else if (errno == ENOMEM)
1310 *er = IMLIB_LOAD_ERROR_OUT_OF_MEMORY;
1311 else if (errno == EMFILE)
1312 *er = IMLIB_LOAD_ERROR_OUT_OF_FILE_DESCRIPTORS;
1313 else if (errno == ENOSPC)
1314 *er = IMLIB_LOAD_ERROR_OUT_OF_DISK_SPACE;
1315 else if (errno == EROFS)
1316 *er = IMLIB_LOAD_ERROR_PERMISSION_DENIED_TO_WRITE;
обращаем внимание на строки *er =
в них записываются разные типы ошибок, обращаем внимаение на то, сколько типов используется
теперь берем перловую обертку: Image::Imlib2 (http://search.cpan.org/~lbrocard/Image-Imlib2-2.03/lib/Image/Imlib2.pm)
находим метод сохранения картинки, он в xs части lib/Image/Imlib2.xs
void
Imlib2_save(image, filename)
Image::Imlib2 image
char * filename
PROTOTYPE: $$
CODE:
{
Imlib_Load_Error err;
imlib_context_set_image(image);
imlib_save_image_with_error_return(filename, &err);
if (err != IMLIB_LOAD_ERROR_NONE) {
Perl_croak(aTHX_ "Image::Imlib2 save error: Unknown error");
}
}
imlib_save_image_with_error_return вызывает в конечном итоге __imlib_SaveImage из C'шной либы
обращаем внимание на то, как теперь подробно можно узнать о том, почему не удалось сохранить картинку
пример вывода такого кода в случае ошибки:
Image::Imlib2 save error: Unknown error at BL/Class/Image.pm line 608.
до тех пор, пока есть такие гении, я не беспокоюсь о своем хлебе
m0r1k,
18 Октября 2013
-
−158
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
sub get_number_from_possible_b64
{
my $s = shift;
my $rv = $s;
if( $s =~ /^\d+$/ )
{
$rv = int( $s );
} elsif( $s =~ /=$/ )
{
$rv = decode_base64( $rv );
}
return $rv;
}
Где-то есть что-то, что либо цифорка, либо строка, оканчивающаяся на знак равенства.
kainwinterheart,
27 Августа 2013
-
−167
- 1
- 2
- 3
- 4
foreach my $ex (@excluded)
{
.....
}
О чем думал, когда имя переменной давал?
Alexandris,
25 Августа 2013
-
−139
- 1
- 2
>> # HTML/4.01 says that line breaks are represented as "CR LF" pairs (i.e., `%0D%0A')
>> $content =~ s/(?<!%0D)%0A/%0D%0A/g if defined($content);
HTTP::Request::Common 6.04, строка 86
http://cpansearch.perl.org/src/GAAS/HTTP-Message-6.04/lib/HTTP/Request/Common.pm
Оно просто берёт и изменяет передаваемый контент. Любой. В том числе просто бинарные данные.
kainwinterheart,
13 Августа 2013
-
−119
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
use strict;
use warnings;
my ($i, $j) = (42, 13);
my $max = [ $i => $j ]->[ $i <= $j ];
print "max: $max\n";
Вот-так вот: http://ideone.com/2Rd3Mr
// Вроди где-то в PBP этот пример даже есть
Elvenfighter,
31 Июля 2013
-
−165
- 1
if ( $method{'out_format'} && $method{'out_format'} eq lc(q{json}) ) {
Yo dawg, we heard that you like lowercase, so we put some lowercase into your lowercase
Elvenfighter,
18 Июля 2013
-
−172
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
sub company_stuff_add_array_elems
{
my $list = shift;
my $count = 0;
foreach ( @$list )
{
$count += $_;
}
return $count;
}
List::Util::sum
http://perldoc.perl.org/List/Util.html
kainwinterheart,
07 Июня 2013
-
−160
- 1
unless( eval{ $p -> role() -> is_company() } or eval{ $p -> channel_status() } or ( $p -> id() eq 11902 ) )
kainwinterheart,
05 Июня 2013
-
−103
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
sub exdef {
my ($hash, $key) = @_;
if (exists $hash->{$key} && defined $hash->{$key}) {
return 1;
}
return 0;
}
No comments.
BTW.
http://perldoc.perl.org/functions/exists.html
http://perldoc.perl.org/functions/defined.html
Elvenfighter,
08 Мая 2013
-
−117
- 1
sprintf "%d-%02d-%02d", map { $$_[5]+1900, $$_[4]+1, $$_[3]+1 } [localtime];
Даты. Perl. Классика.
http://perldoc.perl.org/POSIX.html#strftime
Elvenfighter,
01 Апреля 2013