小编dgB*_*gBP的帖子

mysql搜索表名的段

我正在尝试在mysql数据库中选择具有相同结尾的表,例如staff_name,manager_name,customer_name(example).我正在考虑下面的内容,因为如果我有一个明确的表名,它就可以工作.

SELECT * FROM "%_name";
Run Code Online (Sandbox Code Playgroud)

我也尝试使用%而不是_而没有运气.我不确定是否还有其他可以尝试的通配符.我环顾四周,但没有一个结果似乎适用于表名的部分:/任何建议?

mysql sql database

12
推荐指数
1
解决办法
2万
查看次数

将字符串变量附加到Perl中的固定字符串

我有一个在提示符下输入的变量:

my $name = <>;
Run Code Online (Sandbox Code Playgroud)

我想在此附加一个固定的字符串'_one'(在一个单独的变量中).

例如,如果$name = Smith它变成了'Smith_one'

我尝试了几种不能给我正确结果的方法,例如:

my $one = "${name}_one";
Run Code Online (Sandbox Code Playgroud)

^ _one当我将它打印出来时出现在下一行,当我使用它时,_one根本不包括在内.

也:

my $one = $name."_one";
Run Code Online (Sandbox Code Playgroud)

^ '_one'出现在字符串的开头.

和:

my $end = '_one';
my $one = $name.$end;
or 
my $one = "$name$end";
Run Code Online (Sandbox Code Playgroud)

这些都没有产生我想要的结果,所以我必须遗漏一些与输入格式如何从提示格式相关的东西.想法赞赏!

string perl append

11
推荐指数
1
解决办法
6万
查看次数

当从Perl模块调用方法时,为什么'::'和' - >'可以互换工作?

从模块调用子程序时,我一直很::困惑->.我知道这::与路径以及模块/子程序->用于对象的位置有关,但我真的不明白为什么我看似可以互换它并且它没有立即出现错误.我有perl模块,它们是更大包装的一部分,例如FullProgram::Part1

我只是想要掌握模块,但是当谈到Perl对象时仍然处于不稳定状态,但我不小心这样做了:

FullProgram::Part1::subroutine1();
Run Code Online (Sandbox Code Playgroud)

代替

FullProgram::Part1->subroutine1();
Run Code Online (Sandbox Code Playgroud)

因此,当我将散列引用传递给子程序1并小心使用$class/$self处理对象引用并意外使用时,::我最后拉出我的头发,想知道为什么我的哈希引用似乎消失了.我已经吸取了教训,但我真的想解释一下这种差异.我已经阅读了perldocs和各种网站,但我没有看到两者之间的任何比较(很难谷歌...)所有帮助赞赏 - 总是很好理解我在做什么!

oop perl module

8
推荐指数
3
解决办法
231
查看次数

用Perl逼近pi - 我做错了什么?

我试图使用Ramanujan算法近似pi :

pi的近似值

它应该计算总和,直到最后一个总和小于1e-15.

这应该只是为了好玩而占用我最多半小时的时间......但我的代码并没有产生任何接近pi的东西,我不知道为什么.很可能是我忽略的傻事,但不确定!

只是一个注释:我从$k1 开始,因为0打破了我的factorialsub,从我的计算中k = 0无论如何都会返回0.

我意识到代码可以更有效地编写; 我尽可能简单地写出来,看看能不能理解我哪里出错了.任何帮助赞赏!

#!/usr/bin/perl
use warnings;
use strict;

sub approx_pi {
    my $const = (2 * sqrt(2)) / 9801;

    my $k = 1;
    my $sum = 0;
    while ($sum < 1e-15) {
        my $p1 = factorial((4 * $k), 1);
        my $p2 = 1103 + (26390 * $k);
        my $p3 = (factorial($k, 1))**4;
        my $p4 = 396**(4 * $k);

        $sum = $sum + ( ($p1 * …
Run Code Online (Sandbox Code Playgroud)

math perl logic

7
推荐指数
1
解决办法
364
查看次数

在Perl中有没有办法重启当前正在运行的程序?

我在Perl中运行一个程序,它在一个点上评估从子程序中调用的if语句中的数据,例如

sub check_good {
    if (!good) {
         # exit this subroutine
         # restart program
    } 
    else {
         # keep going
    }
} # end sub
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是退出并重新启动.我知道我可以exit 0;直接退出,但显然这是不正确的,如果我想回到开头.我尝试调用基本上启动程序的子程序,但是当它运行时它将再次回到这一点.我想把它放在while循环中,但这意味着将整个文件放在循环中,这将是非常不切实际的.

我实际上并不知道这是否可行,所以任何输入都会很棒.

perl exit subroutine

6
推荐指数
1
解决办法
3995
查看次数

散列哈希哈希值的哈希值是否有一个"简单"的方法来获取列表末尾的元素?

我有一个Perl散列的哈希值...大约11或12个元素深.请原谅我没有重复下面的结构!

一些级别具有固定标签,例如'NAMES','AGES'或类似,因此访问这些级别是好的,因为我可以直接使用标签,但我需要循环其他变量,这导致一些非常长的语句.这是一组循环的一半示例:

foreach my $person (sort keys %$people) {
        foreach my $name (sort keys %{$people->{$person}{'NAMES'}}) {
            foreach my $age (sort keys %{$people->{$person}{'NAMES'}{$name}{'AGES'}}) {
                . . . # and so on until I get to the push @list,$element; part
Run Code Online (Sandbox Code Playgroud)

这只是一个例子,但它遵循我所拥有的结构.没有固定名称部分(大写字母中的元素)可能会更短,但是出于参考目的需要它们.

我尝试将这些元素作为哈希来缩短它,以便在每个阶段缩短它,例如,对于第二个foreach,我尝试了各种形式:

foreach my $name (sort keys %{$person->{'NAMES'}})
Run Code Online (Sandbox Code Playgroud)

但这没用.我确定我以前见过类似的东西,所以语义可能不正确.

我已经研究过关于Hash of Hashes的页面以及对哈希及其元素的引用等等,但没有运气.我已经看过while each循环的例子,但它们似乎没有特别简短或更容易实现.也许只有一种不同的方法可以做到这一点,我忽略了这一点.我已经写出了一整套foreach循环,如果我不必再重复六次左右就会很棒.

当然,可能没有'简单'的方式,但所有的帮助赞赏!

perl hash-of-hashes

6
推荐指数
2
解决办法
2803
查看次数

Perl对象错误:无法通过包找到对象方法

我意识到在以太中有这样的几个问题,但我不能解决我的问题.也许我应该改善我的横向思维.

我有一个我正在测试的模块.这个模块看起来像:

package MyModule;
use strict;
use warnings;

... # a bunch of 'use/use lib' etc.

sub new {
    my $class = shift;
    my ($name,$options) = @_;

    my $self = {
        _name     => $name,
        _features => $options,
        _ids      => undef,
        _groups   => undef,
        _status   => undef,
    };
    bless $self,$class;
    return $self;
}

sub init {
    my ($self) = @_;
    my ($ids,$groups,$status) = ...; # these are from a working module
    $self->{_ids}    = $ids;
    $self->{_groups} = $groups;
    $self->{_status} = $status;
    return …
Run Code Online (Sandbox Code Playgroud)

oop perl object

6
推荐指数
1
解决办法
2万
查看次数

考虑到月份的不同日期,如何在Perl中找回几个月?

我想知道是否有一个内置的Perl函数可以调整日期,如果你需要一个月的时间.例如,如果日期是第31天,如果它没有31天,它将调整为上个月的结束.

如果没有相隔31天(12月/ 1月,7月/ 8月)和2月的月份,我会轻易将其改为30.我只想将日期存储在距当前日期一定的时间内,例如

my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);

$current_date = join("-", (1900+$year), ($mon+1), $mday);
$one_month_ago = join("-", (1900+$year), ($mon), $mday);
$one_year_ago = join("-", (1899+$year), ($mon+1), $mday);
Run Code Online (Sandbox Code Playgroud)

我可以处理2月份的实例,因为它仅适用于年份,但如果这是在2012年12月31日采取的话,那么带走一个月意味着2012年11月31日,这当然不存在.我以为在问自己复杂的事情之前我会问是否有功能...谢谢:)

perl time date function localtime

5
推荐指数
3
解决办法
5733
查看次数

在字符串python中查找最长的唯一子字符串

我正在尝试寻找不包含重复字符的字符串的最长子字符串的古老问题(周围有很多版本)。我不知道为什么我的尝试不能正常工作:

def findLongest(inputStr):
    resultSet = []
    substr = []

    for c in inputStr:
        print ("c: ", c)
        if substr == []:
            substr.append([c])
            continue

        print(substr)
        for str in substr:
            print ("c: ",c," - str: ",str,"\n")
            if c in str:
                resultSet.append(str)
                substr.remove(str)
            else:
                str.append(c)
        substr.append([c])



    print("Result set:")
    print(resultSet)
    return max(resultSet, key=len)

print (findLongest("pwwkewambb"))
Run Code Online (Sandbox Code Playgroud)

当我的输出到达第二个“w”时,它不会迭代所有 substr 元素。我想我做了一些愚蠢的事情,但我看不到它是什么所以一些指导将不胜感激!我觉得我要踢自己的答案......

我的输出的开头:

c:  p
c:  w
[['p']]
c:  w  - str:  ['p']

c:  w
[['p', 'w'], ['w']]
c:  w  - str:  ['p', 'w'] # I expect the …
Run Code Online (Sandbox Code Playgroud)

python python-3.x

5
推荐指数
1
解决办法
2917
查看次数

在perl中组合2个"深"(多维)哈希

有一个问题可以解释我想要的内容:如何在perl中合并2个深哈希

但是,那里的答案似乎对我不起作用(建议使用该Merge模块).

我有两个哈希像这样:

$VAR1 = {
          '57494' => {
                       'name' => 'John Smith',
                       'age' => '9',
                       'height' => '120'
                     },
          '57495' => {
                       'name' => 'Amy Pond',
                       'age' => '17',
                       'height' => '168'
                     }
        }
};
$VAR1 = {
          '57494' => {
                       'name_address' => 'Peter Smith',
                       'address' => '5 Cambridge Road',
                       'post_code' => 'CR5 0FS'
                     }
        }
};
Run Code Online (Sandbox Code Playgroud)

如果我使用Hash::Merge%c = {%a,%b}格式我每次都得到这个:

$VAR1 = '57494';
$VAR2 = {
          'name_address' => 'Peter Smith',
          'address' …
Run Code Online (Sandbox Code Playgroud)

perl hash merge hash-of-hashes

4
推荐指数
1
解决办法
1833
查看次数