If
you have a question on how to do something in Perl, or
you need a Perl solution to an actual real-life problem, or
you're unsure why something you've tried just isn't working...
then this section is the place to ask. Post a new question!
However, you might consider asking in the chatterbox first (if you're a
registered user). The response time tends to be quicker, and if it turns
out that the problem/solutions are too much for the cb to handle, the
kind monks will be sure to direct you here.
Hey guys I have a problem with the speed of one part of my perl script. My script deals with a manipulation of a excel file.
The part where the speed is very low is a nested loop and I have no idea how to avoid that. I can show you the part:
use strict;
use warnings;
use Win32::OLE;
use Win32::OLE qw(in with);
use Win32::OLE::Const "Microsoft Excel"
for ($begincol;$begincol<$totcol;$begincol++) {
for ($beginrow;$beginrow<$maxrows;$beginrow++) {
my $cap = $Sheet2->Cells($beginrow,5)->{'Text'};
my $app = $sheet2->Cells(3,$begincol)->{'Text'};
my $yes = "yes";
if (index($app, $cap) != -1) {
$Sheet->Cells($beginrow,$begincol)->{Value} = $asis;
}
}
$beginrow = 7;
}
I am very new to perl and programming in general. I have started in a position that has me working with legacy Perl code, which has a number of modules from ‘cpan’. Due to this opportunity I am excited to learn Perl since I have read great things about it.
So far the syntax has been pretty easy for me to understand, and honestly grasping it a little faster then I did Python (all those silly name.item.something format...lol).
Anyway my main question.
I have never used cpan, but I have been watching some youtube videos. However, how do I check or validate the authenticity of the libraries/modules (not sure what is the true name) installed from cpan?
I am worried, because another team in the company uses JavaScript, and I heard (not sure how true) that they used a library from GitHub that was compromised and had some bitCoin mining software compiled into the library.
I do not have a college degree, and self-taught myself Python the basics (if you could call that), so I am not allowed to work on that team that uses JavaScript or other programming languages, and I volunteered to work on the legacy perl code items, with the hope of getting good to get experience and exposure to different programming styles and methods.
Also,
Looks like some of the code used object oriented style of code, from what I researched.
Can anyone offer a good book that discussed OOP styles? Does not have to be perl related, I do not get the concept of OOP and I am struggling with it.
I'm having a problem. I'm porting some perl to C to speed it up, and I can't get the two languages to agree on what's going on. I'm using ActiveState's perl 5.24.1 for Windows. Consider the following code:
The code prints a string of 10s, indicating that the 13/10 combination in Windows has been translated to a bare 10. I can understand that, for compatibility reasons. But it seems to mean there is no way in Windows of telling a 13/10 combo from a bare 10. This makes a difference in my code, in that I can't get C and perl to hash the same string the same way. Am I missing something? Is there no way at all to tell a 13/10 from a 10 in Windows perl?
I believe the upshot of this, where my code is concerned, is that perl is doing it "wrong" compared to C and I'll never get the two to agree. I hope I'm wrong about that. I note with interest and mild annoyance that strlen("\n") == 1 even in C for windows. But C allows me to get at the underlying character buffer and perl does not.
Always unpack @_ first at line 22, column 1. See page 178 of PBP. (S
+everity: 4)
Subroutine "foo" does not end with "return" at line 22, column 1. See
+ page 197 of PBP. (Severity: 4)
I've found a partial workaround: running perlcritic on the output of B::Deparse instead of the source itself. It reports lots of sins committed by Function::Parameters themselves (e.g. Magic variable "$^H" should be assigned as "local" at line 14, column 44. See pages 81,82 of PBP.) but seems to work.
Unfortunately, it gets more complex when Types::Standard are added to the mix.
use Function::Parameters;
use Types::Standard qw( Num );
fun foo (Num $x) {
$x + 1
}
As expected, i sometimes get partial json objects in $data.
My first idea would be to so something like m/{.*?}/ against $data. Or rather some more elaborate version that deals with balanced parens and quoted strings.
My question is, is there an easier / simpler / more straightforward way to deal with something like this that I am missing?
-- Sec
EDIT: to clarify a bit.
The problem is that in the callback $data may just be
I am trying to create a hash and then print it out. When executing program, I am getting $key & $value need explicit package.
O wise monks, please show me the error of my ways :)
#! /usr/bin/perl
use v5.12;
use warnings;
## 2/15/19
my @people = qw{ fred barney fred wlima dino barney fred pebbles
+};
my %count; # new empty hash
$count{$_}++ foreach @people;
while ( ($key, $value) = each %count) {
print "$key => $value\n";
}
~
Friday afternoon question: what's the real purpose of namespace::autoclean in your OO code?
I've seen it in classes written with Moose, but the description Keep imports out of your namespace
doesn't really speak to me about the advantage of using it. Where am I going to get bitten if I don't use it. Just a simple answer will do.
thanks,
Ea
Sometimes I can think of 6 impossible LDAP attributes before breakfast.
I setup a new perl (strawberry portable) and I'm stuck with a failing connection to mysql server. That connection was working (and is still working) without problem on my old perl setup. I have no admin rights on the mysql server, I didn't create the users and password myself.
I have tried to move DBIx::Class in perl/site/lib and DBI in perl/vendor/lib from the old to the new install, but that does not change the problem.
The error is
DBI Connection failed: DBI connect('host= ... ;database= ... ;','user_
+name',...) failed: Authentication plugin 'mysql_old_password' cannot
+be loaded: The specified module could not be found.
at c:/spp/perl/vendor/lib/DBIx/Class/Storage/DBI.pm line 1517. at c:/
+spp/perl/vendor/lib/DBIx/Class/Schema.pm line 1118.
DBIx::Class::Schema::throw_exception(Dbc::Schema=HASH(0x5aa0c2
+4), "DBI Connection failed: DBI connect('host=mysql.unifr.ch;datab"..
+.) called at c:/spp/perl/vendor/lib/DBIx/Class/Storage.pm line 113
DBIx::Class::Storage::throw_exception(DBIx::Class::Storage::DB
+I=HASH(0x5aa516c), "DBI Connection failed: DBI connect('host=mysql.un
+ifr.ch;datab"...) called at c:/spp/perl/vendor/lib/DBIx/Class/Storage
+/DBI.pm line 1558
DBIx::Class::Storage::DBI::catch {...} ("DBI connect('host=mys
+ql.unifr.ch;database=dokpe_i02;','dokpe_"...) called at c:/spp/perl/v
+endor/lib/Try/Tiny.pm line 123